피치못하게 VisualStudio가 아닌,
구름IDE로 학습시작하게 되었습니다.
제가 코딩 배울때는
int main(){
}
이걸로 배웠는데 여기는
int main(int argc, char* argv[]){
}
시작할때부터 이렇게 세팅되어있더라고요?
혹시 무슨 차이인지 알수있을까요?
또 구름IDE로 코딩을 하려면
무조건 메인 함수는 저런 양식을 따라야할까요?
그리고 이렇게 통합개발환경를 통한 코딩과
VisualStudio를 통한 코딩의 문법 차이가 있을까요?
온라인 컴파일러는 구름 IDE를 사용해도 되고, 상단 고정글에 있는 glot.io를 사용해도 됩니다. 회원 가입하면 코드를 저장할 수 있습니다.
int main() 형식은 비표준입니다.
C 언어 표준에서는 두 가지 형식으로 제안하고 있습니다.
int main(void)로 써서 전달할 인수가 없다는 사실을 명확하게 선언하는 것과
기본 형식으로
int main(int argc, char *argv[])
을 써야 합니다. 둘 중에 하나만 써야 합니다.
glot.io의 기본 코드는 main(void)로 되어 있습니다.
C 언어 표준에는 명확하게 두 가지 타입만 쓸 것을 명시하고 있습니다.
5.1.2.2.1 Program startup
The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
or
with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;
or
<C 언어 코딩 도장>은 가능하면 C 언어 표준 명세에 따라 설명하려고 노력했습니다.in some other implementation-defined manner.
void main() 형식도 쓰이지만, 표준안에 따르면 main은 반드시 int를 반환 형식으로 가져야 하므로 컴파일러가 내부적으로 int로 바꿔서 처리하게 됩니다.
C 언어를 주로 쓰는 임베디드 업계에서의 불만 중에 하나는 비표준으로 가르치는 C 언어 책이 너무 많다는 사실이고, <C 언어 코딩 도장>은 표준을 중심으로 설명하면서 비표준이지만 알아야 하는 사실은 함께 정리되어 있습니다.
개발툴에 따른 문법은 차이가 없습니다. 1998년에 제정된 ANSI C98 표준안만 지원하는 컴파일러이면 문제가 없고, 현재 대다수 컴파일러는 이를 지원합니다.
표준안 지원은 GCC, Clang이 가장 많이 지원하고 있고, Visual Studio는 부족한 편입니다.