๐—ฃ๐—ฟ๐—ผ๐—ท๐—ฒ๐—ฐ๐˜ ๐—”๐—ฉ๐—ฆ

Project AVS Since 2023.01.27

๐Ÿ’ป ์†Œํ”„ํŠธ์›จ์–ด | Software/ํ”„๋กœ๊ทธ๋ž˜๋ฐ | C์–ธ์–ด | C

๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๊ธฐ๋ณธ

์•„๋ฒต AVS 2023. 4. 11. 21:37

CTRL + F ๋กœ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰

๋ณธ ๊ธ€์€ ํ•„์ž๊ฐ€ C์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์“ฐ๋Š” ์ผ์ข…์˜ ์ €์žฅ ๋…ธํŠธ์ž…๋‹ˆ๋‹ค.

ํ•„์ž๋„ ๋ฐฐ์šฐ๋Š” ์ž…์žฅ์œผ๋กœ

ํ•„์š”ํ•˜์‹  ๋ถ„ ๋“ค์€ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค.

 

๋น„์ฃผ๊ธฐ์  ์—…๋ฐ์ดํŠธ ์˜ˆ์ •

๋งˆ์ง€๋ง‰ ์ˆ˜์ • 2023 05 03 ๋


 

 

โ— ์‹ค์ˆ˜ ํ‘œํ˜„ ๋ฐฉ์‹


โ— ์ปดํ“จํ„ฐ๊ฐ€ ์‹ค์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ์—” ์˜ค์ฐจ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์‹์ธ๋ฐ

m๊ณผ e์— ์ ์ ˆํ•œ ๊ฐ’์„ ๋„ฃ์–ด์„œ 0.0์„ ๋ชป ๋งŒ๋“ ๋‹ค.

2์˜ n์Šน์€ ์ ˆ๋Œ€ 0์ด ๋  ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ ์ปดํ“จํ„ฐ๋Š” ์‹ค์ˆ˜ ํ‘œํ˜„์„ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ

๊ทผ์‚ฌ์น˜๋ฅผ ํ†ตํ•ด์„œ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„

 

 

โ— 12345

 

โ— ์—ฐ์‚ฐ์ž


&   : ๋น„ํŠธ๋‹จ์œ„ AND ์—ฐ์‚ฐ  | ๋‘ ๊ฐœ์˜ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ผ๋•Œ 1 ๋ฐ˜ํ™˜

|    : ๋น„ํŠธ๋‹จ์œ„ OR ์—ฐ์‚ฐ     | ๋‘ ๊ฐœ์˜ ๋น„ํŠธ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1 ๋ฐ˜ํ™˜ 

^   : ๋น„ํŠธ๋‹จ์œ„ XOR ์—ฐ์‚ฐ   | ๋‘ ๊ฐœ์˜ ๋น„ํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด 1 , ๊ฐ™์œผ๋ฉด 0 ๋ฐ˜ํ™˜

~   : ๋น„ํŠธ๋‹จ์œ„ NOT ์—ฐ์‚ฐ   | ๋น„ํŠธ๋ฅผ 0->1  , 1->0 ์œผ๋กœ ๋ณ€ํ™˜ , MSB๋„ ๋ณ€ํ™˜ํ•œ๋‹ค.

<< : ๋น„ํŠธ๋‹จ์œ„ LEFT ์ด๋™  | ๋น„ํŠธ์—ด์„ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฐ’ ๋งŒํผ ์ด๋™ |

                                           ex) 15<<1 15๋น„ํŠธ์—ด์„ ์™ผ์ชฝ์œผ๋กœ 1์นธ์”ฉ ์ด๋™

>> : ๋น„ํŠธ๋‹จ์œ„ Right ์ด๋™  | ์ดํ•˜์ƒ๋žต

 

 

โ— ํŠน์ˆ˜ ๋ฌธ์ž์˜ ์ข…๋ฅ˜


\a : ๊ฒฝ๊ณ ์Œ

\b : ๋ฐฑ์ŠคํŽ˜์ด์Šค(backspace)

\f : ํผ ํ”ผ๋“œ(form feed)

\n : ์ƒˆ๋กœ์šด ํ–‰ (new line)

\r : ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด (carriage return)

\t : ์ˆ˜ํ‰ ํƒญ

\v : ์ˆ˜์ง ํƒญ

\' : ์ž‘์€ ๋”ฐ์˜ดํ‘œ ์ถœ๋ ฅ

\" : ํฐ ๋”ฐ์˜ดํ‘œ ์ถœ๋ ฅ

\? : ๋ฌผ์Œํ‘œ ์ถœ๋ ฅ

\\ : ์—ญ์Šฌ๋ž˜์‰ฌ ์ถœ๋ ฅ

โ— %c


%c : ๋ฌธ์ž์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ(๋˜๋Š” ์ž…๋ ฅ)ํ•จ.

#include <stdio.h>

int main(void)
{
	char ch_1 = 'A' , ch_2=65;
    
    printf("%c %d \n",ch_1, ch_1);
    printf("%c %d \n",ch_2, ch_2);

โ€ป ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ intํ˜•์€ ์ ํ•ฉํ•œ๊ฐ€? -> No

   ใ„ดintํ˜•์œผ๋กœ ์„ ์–ธ์‹œ ์—ฐ์‚ฐ์ด ๋นจ๋ผ์ง„๋‹ค. ๋‹ค๋งŒ ๋ฌธ์ž๋ฅผ ์—ฐ์‚ฐํ•  ์ผ์ด ์—†๊ธฐ์— char์ด ์ ํ•ฉ

 

โ€ป charํ˜•์€ ๋ฌธ์ž์˜ ํ‘œํ˜„์„ ๋ชฉ์ ์œผ๋กœ ์ •์˜๋œ ์ž๋ฃŒํ˜•์ด๋ฏ€๋กœ "๋ฌธ์žํ˜•"์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋„ ํ•จ.

   ํ•˜์ง€๋งŒ charํ˜•์€ ์ •์ˆ˜ํ˜•์ด๋‹ค. ๋ฌธ์ž๋„ ์ •์ˆ˜์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„์ด ๋˜๊ณ ,

   ์‹ค์ œ๋กœ charํ˜• ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ์ •์ˆ˜๋‹ค.  -์œค์„ฑ์šฐ์˜ ์—ดํ˜ˆ C-

 

โ— for ๋ฌธ

โ€ป ๋ฐ˜๋ณต์˜ ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„ ๊ฒฝ์šฐ๋ผ๋ฉด for ๋ฌธ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด while ๋ฌธ

 

โ€ป ๋ฌดํ•œ ๋ฃจํ”„----------------------------------------------------------------------

 

for( ; ; )
{

}

 

โ— if ๋ฌธ


โ€ป if ๋ฌธ์€ ๋ช‡์ค„์— ๊ฑธ์ณ์„œ ํ‘œํ˜„์ด ๋˜๊ฑด ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹ ๋œ๋‹ค.

 

โ€ป if ~else ๋˜ํ•œ ๋‘ ๊ฐœ์˜ ๋ฌธ์žฅ์ด ์•„๋‹Œ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์ด๋‹ค.

 

โ— if ~ else ๋Œ€์ฒด ์‚ผํ•ญ ์—ฐ์‚ฐ์ž


โ€ป (์กฐ๊ฑด) ? data1 : data2

์กฐ๊ฑด์ด True ์ด๋ฉด data1  ,  False๋ฉด data2 ๋ฐ˜ํ™˜

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int num, abs;
	printf("์ •์ˆ˜ ์ž…๋ ฅ: ");
	scanf("%d", &num);

	abs = num > 0 ? num : num * (-1);
	printf("์ ˆ๋Œ“๊ฐ’ : %d \n", abs);
	return 0;
}

 

โ— break๋ฌธ continue ๋ฌธ


โ€ป break๋ฌธ์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด์„œ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋ฅผ ๋น ์ ธ ๋‚˜์˜จ๋‹ค.

 

โ€ป continue๋ฌธ์€ ์กฐ๊ฑด ๊ฒ€์‚ฌ๋กœ ์ด๋™ํ•œ๋‹ค.

 

โ— Switch ๋ฌธ


โ€ป ๋‘ ๊ฐœ์˜ ๋ ˆ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„ ๊ฐ€๋Šฅ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	char sel = 'n';
	switch (sel)
	{
	case 'M':
		printf("sel ๊ฐ’์€ M or m \n");
	case 'm':
		printf("sel ๊ฐ’์€ M or m \n");

	case 'N' : case 'n' : printf("sel ๊ฐ’์€ N or n \n");
		break;
	}
	return 0;
}

โ€ป switch ๋ฌธ์€ if ... else if ... else ์— ๋น„ํ•ด ๊ฐ€๊ธ‰์  ๋ถ„๊ธฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์„ ๋•Œ ์‚ฌ์šฉ

     ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ์–ต์ง€๋กœ ์“ฐ์ง€๋Š” ๋ง์ž if else๊ฐ€ ๋” ํŽธํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

โ— goto ๋ฌธ


โ€ป goto๋ฌธ์„ ์ž์ฃผ ์“ฐ์ง€๋Š” ์•Š๋Š”๋‹ค. ์ถ”์ฒœ์„ ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int num;
	printf("์ž์—ฐ์ˆ˜ ์ž…๋ ฅ : ");
	scanf("%d", &num);

	if (num == 1)
		goto ONE;
	else
		goto OTHER;

ONE:
	printf("์ž…๋ ฅ๊ฐ’ 1 \n");
	goto END;
OTHER:
	printf("1์•„๋‹˜ \n");

END:
	return 0;

}

โ— ํ•จ์ˆ˜


โ€ป ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ (์ข…์ข… ์žˆ์Œ)

	void NoReturn(int num)
	{
		if (num < 0)
			return; //๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ
	}

โ€ป ํ•จ์ˆ˜ ์ •์˜ ์ˆœ์„œ(์›๋ž˜๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธ ํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•ด์•ผํ•˜๋‚˜ ์•„๋ž˜์˜ ํ˜•ํƒœ๋กœ๋„ ๊ฐ€๋Šฅ)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int INC(int n); //int n ์„ int๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ -> ์„ ์–ธ์—์„œ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜ ๋ฐ ์ž๋ฃŒํ˜•๋งŒ ํฌํ•จ ํ•˜๋ฉด ๋œ๋‹ค.


int main(void)
{
	int num = 2;
	num = INC(num);
	printf("%d \n", num);
	return 0;
}

int INC(int n)
{
	n++;
	return n;
}

โ€ป ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ C์–ธ์–ด โ˜…โ˜…โ˜…

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void Fib(int num) {
	int f1 = 0, f2 = 1, f3, i;
	if (num == 1)
		printf("%d \n", f1);
	else
		printf("%d %d ", f1, f2);

	for (i=0;i<num-2;i++)
	{
		f3 = f1 + f2;
		printf("%d ", f3);
		f1 = f2;
		f2 = f3;
	}
}

int main(void)
{
	int input;
	scanf("%d", &input);

	if (input < 1) {
		printf("1์ด์ƒ ์ž…๋ ฅํ•ด๋ผ \n");
		return -1;
	}
	Fib(input);
	return 0;
}

 

โ— ํ•จ์ˆ˜ - ์ง€์—ญ ๋ณ€์ˆ˜


โ€ป ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ค‘๊ด„ํ˜ธ ๋‚ด์— ์„ ์–ธ๋˜๋Š” ๋ณ€์ˆ˜ -> ์ค‘๊ด„ํ˜ธ๋Š” ํ•จ์ˆ˜์˜ ์ •์˜ , ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์—์„œ๋„ ์„ ์–ธ

 

โ€ป ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น ์ง€์—ญ์„ ๋ฒ—์–ด๋‚˜๋ฉด ์ž๋™์œผ๋กœ ์†Œ๋ฉธ -> ์„ ์–ธ๋ฌธ์ด ์กด์žฌํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜(์ข…๋ฃŒ)ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์†Œ๋ฉธ

 

โ€ป ์„ ์–ธ๋œ ์ง€์—ญ์ด ๋‹ค๋ฅด๋ฉด ์ด๋ฆ„์ด ๊ฐ™์•„๋„ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

โ€ป ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์ž„. -> ๊ทธ ์—ญ์€ ์„ฑ๋ฆฝ X | ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ '์ž๋™๋ณ€์ˆ˜'๋ผ๊ณ  ํ•จ. -> ์ž๋™์œผ๋กœ ์†Œ๋ฉธ ๋˜๊ธฐ ๋•Œ๋ฌธ

 

โ— ํ•จ์ˆ˜ - ์ „์—ญ ๋ณ€์ˆ˜


โ€ป ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘๊ณผ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น , ์ดˆ๊ธฐํ™” ์ง„ํ–‰ํ•˜์ง€ ์•Š์„ ์‹œ 0์œผ๋กœ ์ดˆ๊ธฐํ™” 

 

โ€ป ๊ฐ€๊ธ‰์  ์„ ์–ธ ์ž์žฌ -> ์ŠคํŒŒ๊ฒŒํ‹ฐ ์ฝ”๋“œ ํ˜•์„ฑ ๊ฐ€๋Šฅ์„ฑ ์ฆ๊ฐ€

 

โ— ๊ทธ ์™ธ ๋ณ€์ˆ˜


โ€ป static | ์„ ์–ธ๋œ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ(์ง€์—ญ๋ณ€์ˆ˜) , 1ํšŒ ์ดˆ๊ธฐํ™”ํ›„ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์กด์žฌ(์ „์—ญ ๋ณ€์ˆ˜)

 

โ€ป register | ๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์ˆ˜ , CPU๋‚ด์— ์กด์žฌํ•˜๋Š” '๋ ˆ์ง€์Šคํ„ฐ'๋ผ๋Š” ๊ณณ์— ์ €์žฅ -> ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฆ„

์ตœ์ข… ๊ฒฐ์ •์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฒฐ์ •

 

๋‹ค์ŒํŽธ :

2023.04.25 - [์†Œํ”„ํŠธ์›จ์–ด | Software/ํ”„๋กœ๊ทธ๋ž˜๋ฐ | C์–ธ์–ด | C] - ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๋ฐฐ์—ด #ํฌ์ธํ„ฐ

 

๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” C์–ธ์–ด ์ •๋ณด ๋ชจ์Œ #๋ฐฐ์—ด #ํฌ์ธํ„ฐ

โ— 1์ฐจ์› ๋ฐฐ์—ด โ€ป ๋ฐฐ์—ด์˜ ๊ธธ์ด ์ •๋ณด๋Š” ์ƒ์ˆ˜๋กœ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ํ—ˆ๋‚˜ ์ตœ๊ทผ์—๋Š” ์ƒ์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ณ€์ˆ˜ ์„ ์–ธ๋„ ํ—ˆ์šฉํ•˜๋‚˜ ๋ฒ”์šฉ์ ์œผ๋กœ ์ƒ์ˆ˜ ์„ ์–ธ์„ ๊ถŒ์žฅํ•œ๋‹ค. #define _CRT_SECURE_NO_WARNINGS #include int main(void) {

avs-won.tistory.com

Since 2023 04 - 10

 

๋ฐ˜์‘ํ˜•