// first.c
#include <stdio.h>
//C언어는 함수의 집합, 함수는 호출되면 절차 지향으로 실행됨
// \n : 줄바꿈
// 실행문은 세미콜론;으로 끝남
// main 아닌 함수는 호출시 실행
funcA()
{
printf("funcA() called. \n");
}
// main 함수는 최상위 부모 함수 역할 -> 시작, 끝
// main 함수 내 자식 함수 위치 무관
// 함수(method)명으로 구분(함수명 중복 불가) cf. 객체 지향 언어
int main() //자동으로 시작하는 진입점 함수
{
printf("main() start. \n");
funcA(); // 함수호출 ()괄호 사용 필
printf("main() end. \n");
return 0;
}
//datatype1.c
#include <stdio.h>
#define EQ "=====" //매크로 상수
#define MSG "다우기술" //매크로 상수
#define SUM(x,y) x+y //매크로 함수
int main()
{
// 변수(variable):데이터를 저장하는 메모리 임시 기억 장소
// 변수나 배열 선언: 자료형의 크기만큼 메모리를 할당하고,
// 컴파일러에게 자료형을 알린다.
//변수(variable): 데이터를 저장하는 메모리 임시 기억 장소
// 선언문
char ch; // 변수 선언 (a0a
int num;
double dnum;
const float PI = 3.14159; // 변수를 상수화 (반드시 초기화 수행) cf. 매크로 상수-> 활용도 높음
ch = 'A'; //변수 값의 치환 cf. ch = "A"; 이중인용부호("")는 문자열 할당
num = 1000;
dnum = 1.5;
// PI = 3.5;
// 실행문
printf("C 언어의 데이터 타입(DataType) \n");
printf("문자열: %s, 문자: %c \n", "campus", 'B');
printf("%d+%d=%d \n", 100, 200, 100 + 200);
//ch:A, num:1000, dnum:1.500000
printf("ch:%c, num:%d, dnum:%lf\n", ch, num, dnum);
num = 200;
printf("ch:%c, num:%d, dnum:%lf\n", ch, num, dnum);
printf("PI: %f\n", PI);
printf("%s \n", EQ);
printf("%s \n", MSG);
printf("%d \n", SUM(1000, 2000));
printf("%s \n", EQ);
return 0;
}
// 변수 초기화 : 변수 선언과 동시에 값을 할당함
//datatype2.c
#include <stdio.h>
int main()
{
char ch= 'A'; // 변수 선언 (a0a
int num = 500;
double dnum =1.1;
float fnum = 5.3;
printf("%d, %d, %d \n", sizeof(char), sizeof(int), sizeof(double));
printf("%d, %d, %d, %d \n", sizeof(ch), sizeof(num),
sizeof(fnum), sizeof(dnum));
printf("%d, %d, %d \n", sizeof(10), sizeof(1.1), sizeof(1.2F));
printf("%c, %d, %f, %1f \n", ch, num, fnum, dnum); //할당된 값
printf("%p, %p, %p, %p \n", &ch, &num, &fnum, &dnum); //할당된 주소 // %p는 메모리 주소를 출력하는 자료형 지정자
return 0;
}
// 메모리 주소에 직접 접근해 변수 할당이 가능
#include <stdio.h>
int main()
{
signed char c1 = 'A';
// signed로 선언된 문자변수 , 데이터 범위: +-127
unsigned char c2 = 97;
// unsigned로 선언된 문자변수 (양수값만 저장, 음수 표현하지 않아 signed보다 메모리수 더 큼)
printf("%d:%c \n", c1, c1); // 아스키코드와 출력 (대문자 A는 아스키 코드 65)
printf("%d:%c \n", c2, c2);
printf("%d, %d \n", sizeof(c1), sizeof(c2));
short int x1; // short로만 표기 가능
int x2;
long int x3;
// long long int x4; 32비트 환경에서 유의미하게 사용되는 함수
__int64 x4;
printf("%d, %d, %d, %d \n", sizeof(x1), sizeof(x2), sizeof(x3), sizeof(x4)); // 2 4 4 8
float fnum = 123456789123456789;
double dnum = 123456789123456789;
long double ddnum= 123456789123456789;
printf("fnum : %f \n", fnum);
printf("dnum : %lf \n", dnum);
printf("ddnum: %d, %llf \n", sizeof(ddnum), ddnum); //double형과 크기 동일
return 0;
}
//scanf1.c
#include <stdio.h>
int main()
{
int x, y;
//printf("input x?"); // 200[enter]
//scanf("%d", x); // 에러 발생, 저장될 메모리 주소가 할당되어야함 -> 엠퍼샌드(&) 기호 사용 필
//printf("input y ?");
//scanf("%d", y);
printf("input x?"); // 200[enter]
scanf("%d", &x); // 저장될 메모리 주소가 할당되어야함 -> 엠퍼샌드(&) 기호 사용 필
printf("input y ?");
scanf("%d", &y);
printf("%d + %d = %d \n", x, y, x + y);
printf("%d - %d = %d \n", x, y, x - y);
printf("%d x %d = %d \n", x, y, x * y);
printf("%d / %d = %d \n", x, y, x / y);
printf("%d %% %d = %d \n", x, y, x % y);
return 0;
}
#include <stdio.h>
int main();
void func1(void);
void func2(void);
int main()
{
printf("안녕하세요!!! \n");
func2();
func1();
return 0;
}
void func1(void)
{
printf("투바투 입니다.");
}
void func2(void)
{
printf("제 이름은");
}
_Check_return_opt_
_CRT_STDIO_INLINE int __CRTDECL printf(
_In_z_ _Printf_format_string_ char const* const _Format,
...)
#if defined _NO_CRT_STDIO_INLINE
;
#else
{
int _Result;
va_list _ArgList;
__crt_va_start(_ArgList, _Format);
_Result = _vfprintf_l(stdout, _Format, NULL, _ArgList);
__crt_va_end(_ArgList);
return _Result;
}

c1 1byte(8bit)
-> (A) 할당