본문 바로가기

정보올림피아드개요

2013년 Visual c++ 에서 Linux gcc 컴파일러로 바뀌는 내용

반응형

o main

- int main() 형태로 사용하는 것이 표준프로그램이 종료될 때 무사히 종료되었다는 뜻으로 0을 return 함

기존 환경(Visual C++)

바뀌는 환경(G++)

void main() {

… 할일들 …

 

}

int main() {

… 할일들 …

return 0;

}

 

o variable scope

- for문 안에서만 사용하도록 정의된 변수 i 가 for문 밖에서도 사용 가능한 것은 VC++의 버그

기존 환경(Visual C++)

바뀌는 환경(G++)

for(int i = 0; i < 10; i++)

printf("%d ", i );

printf("%d ", i );

int i;

for(i = 0; i < 10; i++)

printf("%d ", i );

 

o 64bit integer

- 21억 이상의 값을 변수에 넣을 때, 기존에는 __int64 형을 사용했으나 바뀐 환경에서는 long long 형을 사용해야 함

기존 환경(Visual C++)

바뀌는 환경(G++)

__int64 big_num = 10000000;

big_num *= big_num;

printf("%I64d", big_num);

long long big_num = 10000000;

big_num *= big_num;

printf("%lld", big_num);

 

o itoa

- itoa는 표준에 정의되어 있지 않은 함수로, VC++에서만 제공되는 함수

기존 환경(Visual C++)

바뀌는 환경(G++)

int a = 10;

char str[10];

itoa(a, str, 10);

int a = 10;

char str[10];

sprintf(str, "%d", a);

 

o 평소에 C/C++ 표준을 지켜 코딩하는 버릇을 들였다면 크게 차이가 없고, 그렇지 않더라도 언급된 네 가지 정도만 주의하면 별도의 적응 시간 없이 변경 가능

기존 환경(Visual C++)

바뀌는 환경(G++)

void main(X)

int main(O)

__int64(X)

long long(O)

itoa(X)

sprintf(O)

변수는 선언한 곳 안에서만 사용

반응형