| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (reentrant.�P) 날 짜 (Date): 1995년08월04일(금) 08시46분23초 KDT 제 목(Title): const 와 #define 매크로 우선 테크니컬리 말해서 # 쓰는 매크로 즉 프리프로세싱에 해당되는 것들은 콤파일러한테는 전혀 보이지 않는 것들입니다 콤파일타임에 # 가 들어가는 것들이 남아 있으면 콤파일이 아예 안되는 것이 정상이겠죠. 그리고 const 의 경우에 일단 그 스토리지 클래스가 read-only 가 되는 것이고 단지 옵티마이즈 하는 과정에서 바로 숫자로 대치 될수도 있겠지요. 즉 예를 들면 #include <stdio.h> const int k=9; foo(const int *ptr) { printf("foo/address = 0x%x\n", ptr); printf("foo/%d\n", *ptr); *ptr = 10; } main() { printf("%d\n", k); foo(&k); printf("%d\n", k); } 이런 식의 코드에서 const 베리어블의 메모리가 할당 되어 있지 않을 경우는 곤란해 지겠지요. 인라인의 경우는 상황에 따라 인라인으로 들어갔으면 좋겠다는 것이지 항상 되는 것은 아니지요. 특히 룹같은 것이 들어가면 대부분 안될테고.. --- if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1) { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); } |