c (22) 썸네일형 리스트형 [C] 전역변수와 static 차이 int aaa 1. 이 변수는 외부에서 접근이 가능한 변수이다. 2. 같은 이름의 전역 변수가 있으면 링크에러가 난다. static int aaa 1. 현재 소스 파일에서만 접근 가능. 2. 여러 소스에서 같은 이름의 변수가 있어도 링크 에러가 안난다. 즉, 현재 소스파일에서만 사용할 목적으로 만들어진 변수 이다. 둘다 데이터 영역 간단히 보면 다른 파일에서의 사용 유무가 큰차이 aa.c에서 사용한 전역변수를 bb.c에서도 사용 가능 aa.c에서 사용한 Static변수를 bb.c에서는 사용 불가능 aa.c 에서 전역변수를 선언하고 bb.c에서 같은 이름의 전역변수 선언 -> 링크 에러 aa.c 에서 Static변수를 선언하고 bb.c에서 같은 이름의 Static변수 선언 -> 사용 가능 [C] union과 구조체의 차이 struct의 멤버는 모두 다른 메모리를 갖음 union의 멤버는 모두 같은 메모리를 공유 struct크기=모든 멤버크기의 합 union크기=가장 큰 멤버크기 [C] 코드의 연산자 사용법 #if 0 #include //32비트의 문제점을 해결한 코드 int main(int argc, char *argv[]) { int i; int item[32] = {0,}; item[700/32] |= 1 [C] Type의 갯수 / Char형 Type은 몇개 인가? (Char, Int, Float, Double 나머지는 한정자를 이용한 부분들) Int main() { char ch = 200; printf("%d\n", ch); } 결과: -56 200 -> 1 1 0 0 1 0 0 0 1의 보수 -> 0 0 1 1 0 1 1 1 2의 보수 -> 0 0 1 1 1 0 0 0 [C] 매개변수의 전달(call by value/call by address 포함) 매개변수의 전달은 크게 call by value 와 call by address로 구분 두 방법은 비슷하지만 각각 다른경우를 포함 1. 기본적인 call by value 와 call by address Call by value Call by address #include void func(int num); void main(){ int num =10; func(num); } void func(int num){ printf("num: %d\n", num); } #include void func(int num); void main(){ int num =10; func(&num); } void func(int *num){ printf("num: %d\n", *num); } 위 두방법의 결과는 같지만 값을 전달.. [C] malloc /calloc malloc: 기본 메모리할당 calloc: 메모리할당 및 할당된 메모리의 값을 0으로 초기화 ex) 1. 1024의 1차원 동적배열 int val = 1024; malloc int *arr1 = malloc(sizeof(int) * val); calloc int *arr2 = calloc(val, sizeof(int)); 2. str[5][1024]의 2차원 정적 배열 malloc char * str = (char*) malloc(5*1024); calloc char (*str)[1024] = (char(*)[1024]) calloc(5,1024); 이전 1 2 3 다음