본문 바로가기
728x90

C언어171

[C언어][Error] 092. missing terminating ‘ character – 작은따옴표 누락 이 오류는 문자 상수를 표현할 때 작은따옴표(')를 열었지만 닫지 않았을 경우 발생합니다. C언어에서는 한 개의 문자를 표현할 때 반드시 작은따옴표로 열고 닫아야 하며, 'a', '\n'과 같이 작성되어야 합니다. 만약 닫는 따옴표가 없으면 컴파일러는 이를 올바른 문자로 인식하지 못해 오류를 발생시킵니다.또한, 한 글자가 아닌 여러 문자를 작은따옴표로 감싸는 경우에도 이 오류가 발생할 수 있습니다.● 오류 예제#include int main() { char c = 'a; // 오류: 닫는 따옴표 누락 return 0;}컴파일 시 다음과 같은 오류 메시지를 출력합니다.error: missing terminating ' character● 해결 방법문자 상수는 반드시 한 글자이며, 작은따옴표로 .. 2025. 5. 4.
[C언어][Error] 091. function declaration isn’t a prototype – 프로토타입이 아님 이 오류는 함수 선언이 현대 C언어 표준(C89/C99 이후)에서 요구하는 함수 프로토타입 형식이 아닐 경우 발생합니다. 함수 프로토타입이란 함수가 어떤 인자를 받는지 정확히 명시하는 선언 방식으로, 컴파일러가 타입 체크와 오류 검사를 수행할 수 있도록 도와줍니다.프로토타입이 아닌 함수 선언은 컴파일러가 인자의 타입 정보를 알 수 없게 되어, 인자 개수 및 타입이 일치하지 않아도 오류를 감지하지 못하게 됩니다. 이는 버그로 이어질 수 있어 현대 C에서는 반드시 프로토타입을 작성해야 합니다.● 오류 예제#include // 비표준 선언 (프로토타입 아님)int add(); int main() { printf("%d\n", add(3, 4)); // 컴파일러가 인자 검사 불가 return 0;.. 2025. 5. 4.
[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.
728x90