C의 가변 배열 크기 선언
C에서 배열의 크기는 일반적으로 상수 정수 값으로 예상됩니다. 그러나 크기가 상수가 아닌 변수를 사용하여 배열을 선언하는 것이 가능한지에 대한 의문이 생깁니다.
The C 프로그래밍 언어에서 Bjarne Stroustrup이 강조한 것처럼 "배열 바인딩은 상수 표현식이어야 합니다." 결과적으로 아래 코드는 잘못된 것으로 간주됩니다.
<code class="cpp">int ArraySize = 5; int MyArray[ArraySize]; // incorrect</code>
그러나 놀랍게도 GCC v4.4.0과 같은 일부 시스템에서는 코드가 성공적으로 컴파일됩니다.
<code class="cpp">void f(int i) { int v2[i]; } int main() { int i = 3; int v1[i]; f(5); }</code>
이 예상치 못한 동작 이는 표준에 대한 GCC 확장 때문입니다. 기본적으로 GCC에서는 상수가 아닌 변수를 배열 크기로 사용할 수 있습니다. 그러나 이는 모든 컴파일러 또는 플랫폼에서 지원되는 기능이 아닐 수도 있습니다.
이식성이 요구사항인 경우 GCC와 함께 -pedantic 옵션을 사용하여 이 확장에 대한 경고를 활성화하거나 -std=c를 사용하는 것이 좋습니다. 98 오류가 발생합니다. 표준을 준수하면 코드가 더욱 안정적이고 크로스 플랫폼과 호환됩니다.
위 내용은 C에서 가변 크기의 배열을 선언할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!