질문:
가변 길이 배열(VLA)이 지원된다는 개념에도 불구하고 C 표준의 일부가 아닌데, 다음 코드가 성공적으로 컴파일되고 실행되는 이유는 무엇입니까?
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[n]; for (int i=0; i<n; i++) { a[i] = i; } for (int i=0; i<n; i++) { cout << a[i] << endl; } }
답변:
C 표준은 컴파일러에게 다음을 요구하지 않습니다. VLA를 지원합니다. 그러나 컴파일러 공급업체는 VLA를 확장으로 포함할 수 있습니다. 예를 들어, GCC 버전 4.7 이상은 VLA를 지원합니다.
VLA는 처음에 C 14에 포함되도록 제안되었지만 받아들여지지 않았습니다. 이후 C 17 개정판에도 포함되지 않았습니다.
위 내용은 표준에도 불구하고 가변 길이 배열이 C에서 컴파일되고 실행되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!