|  |
| |
| 김답변 |
C언어 표준을 따르지 않는 C컴파일러는 아주 옛날에 터보C, 볼랜드C 정도밖에 없습니다
gcc, clang과 같은것들은 모두 표준을 엄격히 준수하는 컴파일러들입니다
그리고 C언어 표준이라고 질문자님이 말씀하신것이 문법에서의 표준으로 보이는데
2017년 표준인 c++17도 다 지원됩니다 |
2017/08/10 |
|
| 김답변 |
근데 표준을 따르기도 하지만 추가기능도 있습니다 표준규격을 따른다는게 표준에 명시된것만 구현돼있다는 뜻은 아니고
예를들어 doxygen support라든지 여러 최적화기법은 컴파일러에 따라서 상이합니다 |
2017/08/10 |
|
| ndn1665 |
친절한 답변 감사합니다
복받으세요~ |
2017/08/10 |
|
| 김답변 |
아 그런데 이런건 있을 수 있겠군요
C언어 표준에서의 main함수는
int main(int argc, char *argv[]) 혹은 int main(void) 로 정의하고 있습니다 (C99 섹션 5.1.2.2.1)
그런데 gcc를 사용할 땐
main() { } 이렇게 리턴형도 명시하지 않아도 되고 인자도 명시하지 않아도 됩니다
이런거에서 표준을 "엄격히" 준수하지는 않는다고 할 수 있겠네요 |
2017/08/11 |
|
| 김답변 |
그러니까 프론트엔드단에서 어느정도 납득가능한 수준의 간편한 사용이 가능하다는거죠
예를들어 헤더파일을 인클루드 하지 않고도 printf같은 함수를 implicit declaration 으로 사용할 수 있는데
c99 에서는 함수를 암묵적(implicitly)으로 선언하는것을 정의하고 있지 않습니다 (c99 표준에서 "implicit" 검색 결과 기준) |
2017/08/11 |
|