본문 바로가기
728x90

전체 글265

[C언어][Error] 036. too many arguments to function – 함수 인자 수가 너무 많음 이 오류는 함수 호출 시 정의된 매개변수보다 많은 수의 인자를 전달했을 때 발생합니다. C언어에서는 함수 선언 또는 정의에 지정된 인자의 수와 호출 시 전달되는 인자의 수가 일치해야 하며, 초과된 인자는 무시되지 않고 컴파일 오류로 이어집니다.실수로 인자를 추가로 전달하거나 함수 정의를 잘못 이해하고 사용하는 경우 자주 발생합니다.● 오류 예제#include void greet(const char* name) { printf("Hello, %s!\n", name);}int main() { greet("Alice", "Bob"); // 오류: 인자 1개만 허용 return 0;}위 코드에서 greet 함수는 인자를 1개 받도록 정의되어 있으나, 호출 시 2개의 인자를 전달했기 때문에 오류.. 2025. 4. 27.
[C언어][Error] 035. struct has no member with given name – 구조체에 존재하지 않는 멤버 접근 이 오류는 정의된 구조체에 존재하지 않는 멤버를 접근하려 할 때 발생합니다. 구조체 내부에 선언되어 있지 않은 필드명을 잘못 참조하면, 컴파일러는 해당 멤버를 찾을 수 없어 오류를 발생시킵니다.주로 오타, 멤버 이름 변경 후 반영 누락, 또는 다른 구조체와 혼동했을 때 자주 발생합니다.● 오류 예제#include struct Person { int age;};int main() { struct Person p; p.name = 30; // 오류: name이라는 멤버 없음 return 0;}컴파일러는 구조체 Person에 name이라는 멤버가 없기 때문에 다음과 같은 오류 메시지를 출력합니다.error: ‘struct Person’ has no member named ‘name’● .. 2025. 4. 27.
[C언어][Error] 034. continue statement not within a loop – continue 문이 반복문 외부에 있음 이 오류는 continue 문이 반복문(for, while, do-while) 외부에서 사용되었을 때 발생합니다. C언어에서 continue는 반복문 내부에서 다음 반복으로 넘어가기 위해 사용하는 제어문이므로, 루프 밖에서는 사용할 수 없습니다.보통 if 문 안이나 일반 코드 블록에서 실수로 continue를 사용했을 때 이 오류가 발생합니다.● 오류 예제#include int main() { int x = 1; if (x == 1) { continue; // 오류: 반복문 외부에서 continue 사용 } return 0;}컴파일 시 다음과 같은 오류가 출력됩니다.error: continue statement not within a loop● 해결 방법continue.. 2025. 4. 27.
[C언어][Error] 033. break statement not within loop or switch – break 문이 반복문 또는 switch문 외부에 있음 이 오류는 break 문이 for, while, do-while 또는 switch 문과 같은 제어문 블록 외부에서 사용되었을 때 발생합니다. C언어에서 break는 루프 또는 switch 블록을 빠져나가기 위한 제어 흐름 명령이므로, 이와 무관한 위치에서는 사용할 수 없습니다.주로 if 문이나 일반 블록 내에서 break를 실수로 사용했을 때 발생합니다.● 오류 예제#include int main() { int x = 1; if (x == 1) { break; // 오류: if 문 안에서 break 사용 } return 0;}컴파일 시 다음과 같은 오류 메시지가 출력됩니다.error: break statement not within loop or switch● 해결 방.. 2025. 4. 27.
[C언어][Error] 032. case label does not reduce to an integer constant – case 레이블이 상수 표현식이 아님 이 오류는 switch 문 내부의 case 라벨이 컴파일 시간에 결정될 수 없는 상수가 아닐 때 발생합니다. C언어에서 case에는 반드시 컴파일 타임에 계산 가능한 정수 상수 표현식만 사용할 수 있습니다.즉, 변수나 함수의 반환값 등 런타임에 결정되는 값은 사용할 수 없으며, 리터럴 상수, #define 매크로, enum 상수 등만 사용할 수 있습니다.● 오류 예제#include int main() { int x = 2; int n = 1; switch (x) { case n: // 오류 발생: 변수는 상수가 아님 printf("One\n"); break; } return 0;}컴파일러는 다음과 같은 오류를 출력합니다.er.. 2025. 4. 27.
[C언어][Error] 031. duplicate case value – 중복된 case 값 사용 이 오류는 switch 문 내부에 동일한 값을 갖는 case 라벨이 두 번 이상 사용되었을 때 발생합니다. 각 case 라벨은 고유해야 하며, 동일한 정수 값을 중복해서 사용할 수 없습니다.중복된 case 값을 선언하면 컴파일러는 어떤 case 블록을 실행할지 결정할 수 없어 오류를 발생시킵니다.● 오류 예제#include int main() { int num = 1; switch (num) { case 1: printf("One\n"); break; case 1: // 오류: 중복된 case 값 printf("Also One\n"); break; } return 0;}컴파일 시.. 2025. 4. 27.
728x90