본문 바로가기

프로그래밍언어175

[C언어][Error] 090. parameter name omitted – 파라미터 이름 누락 이 오류는 함수의 매개변수를 선언할 때 자료형은 명시했지만, 변수 이름을 생략했을 경우 발생합니다. C언어에서는 함수 매개변수를 정의할 때 반드시 자료형과 함께 변수 이름도 명시해야 합니다. 이름이 없으면 해당 인자를 사용할 수 없기 때문에, 컴파일러는 이를 문법 오류로 처리합니다. 이 문제는 주로 함수 프로토타입에서 매개변수를 단순히 자료형만 나열하거나, 구현 중 실수로 이름을 빠뜨린 경우에 발생합니다. ● 오류 예제#include void printValue(int); // 선언은 가능하지만...void printValue(int) { // 정의에서 이름 누락 printf("값 출력\n");}컴파일 시 다음과 같은 오류 메시지가 출력될 수 있습니다.error: parameter name om.. 2025. 5. 4.
[C언어][Error] 089. qualifier on function type ignored – 함수 반환 타입 수식자 무시됨 이 오류는 함수의 반환 타입에 const, volatile 등의 수식자(qualifier)를 붙였을 때, 컴파일러가 이를 무시한다는 경고 또는 오류 메시지를 출력하는 경우입니다. C언어에서는 함수가 값을 반환할 때 수식자는 실제로 의미를 가지지 않기 때문에, 이러한 선언은 잘못된 것으로 간주됩니다.즉, const int func()와 int func()는 반환값의 성질이 동일하며, 반환되는 값 자체는 복사되기 때문에 const는 무의미하게 처리됩니다.● 오류 예제const int getValue() { return 10;}컴파일 시 다음과 같은 경고 메시지가 출력될 수 있습니다.warning: type qualifiers ignored on function return type● 해결 방법반환 타입.. 2025. 5. 4.
[C언어][Error] 088. ‘main’ takes only zero or two arguments – main 함수 인자 수 오류 이 오류는 C언어의 main 함수가 정의될 때, 허용된 인자 수를 초과하거나 부족하게 정의되었을 경우 발생합니다. main 함수는 표준적으로 인자를 받지 않거나, 두 개의 인자(int argc, char *argv[])를 받아야 하며, 그 외의 형식은 컴파일 오류를 유발합니다.표준 C에서는 다음 두 가지 형식만을 main 함수의 선언으로 허용합니다.int main(void)int main(int argc, char *argv[])● 오류 예제int main(int x) { // 오류: 인자 수가 1개 return 0;}컴파일 시 다음과 같은 오류 메시지가 출력될 수 있습니다.error: ‘main’ takes only zero or two arguments● 해결 방법main 함수의 정의는 반드시.. 2025. 5. 4.
[C언어][Error] 087. expression must be a modifiable lvalue – 수정 불가능한 값에 대입 시도 이 오류는 대입문의 좌변에 수정이 불가능한 표현식이 사용되었을 때 발생합니다. C언어에서 대입 연산자는 좌변이 수정 가능한 lvalue여야 하는데, 상수, 배열 이름, 함수 반환값 등은 수정할 수 없으므로 이러한 값에 값을 할당하려 하면 오류가 발생합니다.특히 배열 이름은 포인터처럼 보이지만 실제로는 수정 불가능한 주소를 나타내므로 좌변에 쓸 수 없습니다. 함수의 반환값 또한 일시적인 값으로 간주되므로 lvalue가 될 수 없습니다.● 오류 예제#include int main() { 5 = 10; // 오류: 상수는 수정 불가 return 0;}또는 다음 예시처럼 함수 반환값에 값을 대입해도 동일한 오류가 발생합니다.int getValue() { return 3;}int main() {.. 2025. 5. 2.
[C언어][Error] 086. static declaration follows non-static declaration – static 선언 순서 오류 이 오류는 동일한 이름의 변수가 먼저 non-static으로 선언되었는데, 이후 다시 static으로 선언될 경우 발생합니다. C언어에서는 변수의 저장 클래스(static, extern 등)를 바꿔서 다시 선언하는 것을 허용하지 않으며, 같은 식별자는 한 번만 정의되어야 합니다.이 오류는 보통 헤더 파일이나 여러 파일에서 동일한 변수명을 중복 선언하면서 발생합니다.● 오류 예제// 파일1.cint counter;// 파일2.cstatic int counter; // 오류: static으로 재선언컴파일 시 다음과 같은 오류 메시지가 출력됩니다.error: static declaration of ‘counter’ follows non-static declaration● 해결 방법하나의 변수는 하나의 저장 .. 2025. 5. 2.
[C언어][Error] 085. variable set but not used – 변수를 선언하고 사용하지 않음 이 경고는 선언된 변수에 값을 할당했지만, 이후 코드에서 해당 변수를 전혀 사용하지 않았을 때 발생합니다. 이 경우 컴파일러는 변수의 존재가 무의미하다고 판단하여 경고 메시지를 출력합니다. 이는 실수로 변수를 선언만 해놓고 사용하지 않았거나, 나중에 코드 수정 과정에서 변수 사용이 제거되었을 때 자주 발생합니다.이 경고는 컴파일러가 프로그램의 불필요한 자원 사용을 줄이고, 유지보수를 돕기 위해 제공하는 중요한 힌트입니다.● 경고 예제#include int main() { int unused = 10; // 값은 할당했지만 사용하지 않음 return 0;}컴파일 시 다음과 같은 경고 메시지가 출력될 수 있습니다.warning: variable ‘unused’ set but not used● 해.. 2025. 5. 2.