두 버전 간에 의미 있는 변경을 일으키는 gcc에 대한 OS 종속 항목이 있습니까? 이 두 버전 사이에 차이점이 있나요? onlinegdb에서 내 코드를 테스트했기 때문에 확인하고 싶었지만 커밋하기 전에 학교의 CentOS 서버에서 코드를 컴파일하고 확인하는 것에 대해 편집증이 있었습니다. 이것이 필요한지 궁금합니다.
답변1
@fox에 동의합니다. 하지만 플랫폼에 따른 동작과 정의되지 않은 동작(GCC가 가능한 경우 정의하려고 시도함)도 있습니다. 이는 플랫폼 운영 체제 및 하드웨어에 따라 다를 수 있습니다. 그러나 Gcc는 가능하다면 일관성을 유지하려고 노력할 것입니다.
차이점의 예로는 32비트 또는 64비트일 수 있는 크기 long int
와 데이터 유형이 있습니다. size_t
(다른 컴파일러에서는 8비트 또는 16비트일 수도 있습니다).
답변2
언급하신 웹사이트는 현재 GCC 5를 사용하고 있는 반면 CentOS는 GCC 7 이상을 사용하고 있는 것으로 보입니다. 하지만 그것이 바로 우리가 표준을 가지고 있는 이유입니다. 유효한 C99 코드는 어느 플랫폼에서나 컴파일될 수 있습니다. 플랫폼별 라이브러리를 사용하거나 엔디안을 고려하지 않고 구조를 "부정확하게" 직렬화하는 것과 같은 작업을 수행하지 않는 한(호스트 아키텍처가 다른 경우) 동일하게 실행됩니다(더 빠르거나 느릴 수 있음).
요약: 이러한 차이점은 학교에서 하려는 일에 의미가 없을 것 같습니다.