HOME > 게시판 > 프로그래밍
게시판| 프로그래밍
※ 게시판 용도에 맞지 않는 글(광고및 홍보 글 등)은 임의삭제될 수 있습니다.

 
작성일 : 15-04-10 18:00
c언어 배열관련 질문드립니다
 글쓴이 : 살고싶어요
조회 : 2,385  

제가 보기엔 아래의 두 코드의 차이는 없어보이는데요

----컴파일 성공코드-------------

void main()

{

char name[20]="홍길동";

printf("good!!!\n");

puts(name);
printf("%c\n", name[0]);
printf("이름 : %s\n", name);

}

---------------------------

--------컴파일 실패코드-----

void main()

{


printf("good!!!\n");


char name[20]="홍길동";

puts(name);
printf("%c\n", name[0]);
printf("이름 : %s\n", name);

}

---------------------------

컴파일을하면

1>------ 빌드 시작: 프로젝트: ch.3, 구성: Debug Win32 ------
1>  ch3.c
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(36): error C2143: 구문 오류 : ';'이(가) '형식' 앞에 없습니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(38): error C2065: 'name' : 선언되지 않은 식별자입니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(38): warning C4047: '함수' : 'const char *'의 간접 참조 수준이 'int'과(와) 다릅니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(38): warning C4024: 'puts' : 형식 및 실제 매개 변수 1의 형식이 서로 다릅니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(39): error C2065: 'name' : 선언되지 않은 식별자입니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(39): error C2109: 첨자는 배열 또는 포인터 형식을 사용해야 합니다.
1>c:\users\gangil\desktop\study~\itbank\c_language\project\ch.3\ch.3\ch3.c(41): error C2065: 'name' : 선언되지 않은 식별자입니다.
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========

이런 오류가 나네요 


배열선언 위치에 따라 컴파일이 되고 안되고 하네요

절차지향 언어이지만 앞에 pirntf()함수는 배열과는 아무런 관련이 없는 함수인데

어째서 컴파일 오류가 나는것일까요..?


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기

노루씨 15-11-11 15:43
 
c언어는 절차지향입니다 변수 선언하실때는 main함수 바로 밑에서 하셔야 합니다. 관련이 없더라도 선언부는 main함수 선언후 바로 쓰셔야 합니다.

main()
{
char dd[20];
printf("dd");
}