C언어의 배열은 공부할 수 없는 사양으로 바뀌었는가?

6186 단어 GCCLLVMCclang배열
수십 개월 만에 C 언어 공부를 시도하고 포인터 관계의 서적을 열었다.
그리고 배열의 영역 밖을 참조한 프로그램을 컴파일했을 때 경고가 나와 놀랐다.
옛날에는 나오지 않았을 것인데・・・.

hoge.c
#include <stdio.h>

int main( void )
{
    int dat[5] = {0};
    int i;

    printf( "Start\n" );

    /* 隊を表示 */
    for ( i = 0; i < 5; i++ ) {
        printf("dat[%d] %d %p\n", i, dat[i], &dat[i] );
    }

    /* 存在しない要素を表示 */
    printf("dat[5] %d %p\n", dat[5], &dat[5] );

    printf( "End\n" );

    return 0;
}



c89 규격조차도 경고가 나왔다.

경고 억제





컴파일 타임에 경고가 발생하지 않도록하는 것이 이상하다고 생각합니다.
그러나 해결책이 없습니다.

버전





일부러 경고 억제를 하지 않고, 컴파일 에러도 내지 않고, 배열 범위외에 밟을 수 있는 컴파일러는 없는 것일까.
아니면 OS 문제인가?

OS: OS X Yosemite 10.10.5

서적에 사용하고 있는 버젼이 기재되어 있지 않으니까・・・.
근본적으로 10년 이상 전의 책을 사용하고 있는 것에 문제가 있을까...
타카가 배열 밖을 참조하는 작업에 몇 시간을 보낸 orz
(게다가, 본래의 작업에서 벗어난 것에, 몇 시간을 낭비한다)

결론



신경 쓰지 않기로 결정했습니다.
따로 경고가 나오기 때문이라고는 할 수 있고, 공부는 계속할 수 있다(지장은 나오지 않는다).

참고 URL



gcc 설치 : ぃ tp // 코 m/시니치오카야마/있어 ms/962에 55 아 c7f8920
버전을 근본적으로 변경하는 단계 : ぃ tp // 코 m / 히로키 11x / ms / 261612c142, 176 츠바 5
이전 gcc 명령 옵션 목록 : h tp // w w. 아사히네 t. 오 r. jp/~wg5k-i ckw/HTML/오네/g-c-2.95.2/g-c_2. HTML
컴파일러 옵션 목록 : http://wwweic.eri.u-tokyo.ac.jp/computer/manual/altix/compile/Fortran/Intel_Fdoc91/main_for/mergedProjects/copts_for/common_content/options_ref_cross_refs_for.htm
GNU gcc 경고 옵션 : h tp // w w. 음 r. 오 rg/~에 ss/도 c/g 꼬마 pts/
일부 경고를 오류 처리로 변경 :  h tp // w w. 메타레아 l. 오 rg / 2008 / 12 / 12 / g c-o p chion s-re-ku st-r-su p-p-s-r r-n gs-an-d-er rs /

옵션 사용 예 : htp // wcwcs23. cs. 고베. 아 c. jp/~모리/4s개 전 ts/엔슈/엔슈 2. 2006/모리/gc. HTML

C99 사양 : h tp // w w. 뾰족하고 r. 네 t/㎁구아게/c㎁g/01
IBM c99 : htps //w w. 이 bm. 이 m/로 ゔぉぺr rks/jp/ぃぬ x/ぃb 등 ry/l99/
Mac에서 C 언어 : htp ://응-히로키-p로g. 하테나 bぉg. 코m/엔트리/2016/06/04/212428
이번에 관련이 없는 사이트(어셈블리 표시): h tp : // 쿠이타. m/kaicho 256/ms/d04d2980b7f9633b735b

좋은 웹페이지 즐겨찾기