본문 바로가기
반응형

Program Language/C18

printf uint64_t uint32_t C 언어 표준에서는 자료형의 정확한 사이즈를 정의하지 않고 있다. 예를들어 int는 몇 바이트, long은 몇 바이트와 같이 정의되어 있지는 않고 아래와 같이 최소한의 제약사항을 두고 있을 뿐이다. char type은 127 이상을 저장할 수 있다 short int type과 int type은 32,767까지 저장할 수 있다 long int는 2,147,483,647까지 저장할 수 있다 이 규칙은 char가 적어도 8 bit가 되어야 한다는 것과,short int와 int는 적어도 16 bit여야 한다는 것과,long int는 적어도 32 bit가 되어야 한다는 것을 뜻한다. 실제 각 자료형의 사이즈는 implementation마다 다르다. 따라서 C99에서는 int16_t, uint32_t 등과 같이 .. 2011. 12. 1.
ignoring return value of 'system', declared with attribute warn_unused_result system("ls"); 이런식으로 썼을 때 warning : ignoring return value of 'system', declared with attribute warn_unused_result 이 난다. 한수가 아래와같이 선언되면 warning을 출력한다. int __attribute__((warn_unused_result)) foo(void) { return -1; } 따라서, int re = system("ls"); warning이 없어진다. http://studyfoss.egloos.com/tb/5310361 2011. 11. 11.
format not a string literal and no format arguments char* c; printf(c); 귀찮아서 위처럼 썼더니 warning : format not a string literal and no format arguments char* c; printf("%s",c); 2011. 11. 11.
The Context Free Grammar Checker http://smlweb.cpsc.ucalgary.ca/ Context-Free Grammar를 넣는다. 화살표는 -> 하나의 none-terminal rule이 끝나면 . or는 | 각각 none,terminal은 띄어쓰기로 구분. 그리고 View Vital Statics를 클릭- first와 follow가 나온다. LL(1)이 아니고 이유도 나온다. LL(1)을 만들기 위해서 transform 클릭 left-recursive와 first가 같아서 LL(1)이 아니라니까 remove left recursion 실행, left-factor 실행 LL(1)완성! parsing table도 그려준다. 2011. 10. 12.