일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 보안토큰 초기화
- 1인법인 은행
- 채굴량 높이기
- 법인범용공동인증서
- 법인범용인증서갱신
- 법인범용인증서조달청
- 법인설립팁
- 지문인식토큰
- 법인등기온라인
- 법인등기인터넷
- 법인설립주의사항
- 홈채굴
- 법인범용인증서가격
- 조달청인증서
- 범용인증서가격
- 비트 채굴
- 보안토큰 비밀번호 분실
- UnMineable
- 가정 채굴
- 1인법인세무
- 일인법인
- 채굴 방법
- 법인관외이전
- 범용인증서갱신
- 전자서명 비밀번호 초기화
- 이더 채굴
- 애프터버너 국민 세팅 값
- 법인범용인증서
- 전자서명보안토큰 비밀번호 분실
- 범용인증서최저가
- Today
- Total
이게뭐얔ㅋㅋ
c++소스 에러 목록 본문
C++ 소스 에러 목록
1. 'strcpy': 식별자를 찾을 수 없습니다.
- strcpy 함수를 포함한 헤더 string.h를 추가해준다.
2. estrcpy' : 매개 변수 2을(를) 'char'에서 'const char *'(으)로 변환할 수 없습니다.
- strcpy 함수에 들어가는 문자를 문자열로 선언해준다.
3. 'init' :참조되지 않은 지역 변수입니다.
- 사용되지 않는 변수이므로, 삭제해준다.
4. 구문 오류 : ')'이(가) '문자열' 앞에 없습니다.
- ')' 가 빠졌으므로, 빠진 위치에 적절히 추가해준다.
5. 'fopen' : 함수는 1개의 매개 변수를 사용하지 않습니다.
- fopen 에는 2가지 파라메터가 필요하다. 반드시 2가지를 추가해주도록 한다.
6. 'p_' : 선언되지 않은 식별자입니다.
- p_를 사용하기전에 이것이 무엇인지 반드시 선언해주어야한다.
7. 구문 오류 : ';'이(가) ')' 앞에 없습니다.
- ';' 가 빠졌으므로, 빠진 위치에 적절히 추가해준다.
8. '=' : 'char'에서 'char [100]'(으)로 변환할 수 없습니다.
- 등호 표시 '=' 는 양쪽이 같은 형일때만 사용할 수 있다. 양쪽을 같게 바꿔준다.
9. 'delete' : 포인터가 아닌 개체를 삭제할 수 없습니다.
- delete를 사용하는 개체가 포인터인지 확인하고 포인터가 아닐 시 해당 라인을 제거한다.
10. 'fprintf' : 매개 변수 1을(를) 'const char [9]'에서 'FILE *'(으)로 변환할 수 없습니다.
- fprintf 맨 앞에 파일 포인터 값을 넣어준다.
11. 구문 오류 : ')'이(가) 'return' 앞에 없습니다.
- return 구문 앞에 )를 삽입하여 블록을 닫아준다.
12. 오버로드된 'operator ->'의 'StudentInfo **' 반환 형식이 잘못되었습니다.
- -> 연산자를 사용하기 위해 사용된 변수를 포인터로 사용했는지 확인한다.
13.'student_number' : 'std::list<_Ty>::_Iterator<_Secure_validation>'의 멤버가 아닙니다.
- student_number 가 포인터의 멤버가 맞는지 확인한다.
14. '초기화 중' : 'std::list<_Ty>::_Iterator<_Secure_validation>'(으)로 변환할 수 없습니다.
- iterator을 호출한 개체에 '*' 가 붙어있는지 확인한다.
15. 이항 '!=' : 오른쪽 피연산자로 연산자가 없거나 허용되는 변환이 없습니다.
- iterator을 호출한 개체에 '*' 가 붙어있는지 확인한다.
16. 'StudentInfo' 형식에 오버로드된 멤버 'operator ->'가 없습니다.
- iterator을 호출한 개체에 '*' 가 붙어있는지 확인한다.
17. '->StudentInfo::student_number' : 왼쪽 피연산자에 'struct' 형식이 있습니다. '.'를 사용하십시오.
- '->' 포인터 호출 기호 대신 '.' 스트럭트 호출 기호로 바꿔서 사용한다.
18. 첨자는 배열 또는 포인터 형식을 사용해야 합니다.
- 첨자에 []를 붙이거나 *를 붙여준다.
19. 구문 오류 : ';'이(가) ')' 앞에 없습니다.
- ';' 가 빠졌으므로, 빠진 위치에 적절히 추가해준다.
20. 구문 오류 : ')'이(가) 'return' 앞에 없습니다.
- return 구문 앞에 )를 삽입하여 블록을 닫아준다.
21. 'jeongsu' : 선언되지 않은 식별자입니다.
- jeongsu를 사용하기전에 이것이 무엇인지 반드시 선언해주어야한다.
22. 'int'에서 'bool'(으)로 잘립니다.
- bool 로 선언된 것을 int 형으로 바꿔준다.
23. 왼쪽 피연산자는 l-value이어야 합니다.
- 왼쪽에 있는 피연사자를 상수가 아닌 변수로 바꿔준다.
24. '->student_number' 왼쪽은 클래스/구조체/공용 구조체/제네릭 형식을 가리켜야 합니다.
- student_number를 호출한 것이 무엇인지 확인하고 클래스/구조체/공용 구조체로 바꿔준다.
25. '->height' 왼쪽은 클래스/구조체/공용 구조체/제네릭 형식을 가리켜야 합니다.
- height를 호출한 것이 무엇인지 확인하고 클래스/구조체/공용 구조체로 바꿔준다.
26. 구문 오류 : '>'
- <> 안에 들어간 것이 무엇인지 확인하고 매개 변수로 올바르게 바꿔준다.
27. 'std' : 클래스 또는 네임스페이스 이름이 아닙니다.
- "stdlib.h" 헤더를 include 시켜준다.
28. 'iterator' : '`global namespace''의 멤버가 아닙니다.
- iterator을 호출한 매개 변수가 올바르게 사용되었는지 확인한다.
29. 'Compare2' : 값을 반환해야 합니다.
- return 구문을 붙여 함수에 맞는 값을 반환해준다.
30. 'fopen' : 함수는 1개의 매개 변수를 사용하지 않습니다.
- fopen 에 2개의 파라메터 값을 삽입해준다. 파일포인터, 파일모드의 2개.
31. '->std::list<_Ty>::push_back' : 왼쪽 피연산자에 'class' 형식이 있습니다. '.'를 사용하십시오.
- push_back 왼쪽에는 클래스 형식에 알맞는 '.' 기호를 사용한다.
32. 'std::list<_Ty>' 형식에 오버로드된 멤버 'operator ->'가 없습니다.
- 특정 함수를 호출할 때 사용되는 연산자가 '->' 로 잘못 사용되었으므로 '.' 로 바꿔준다.
33. 'getch': 식별자를 찾을 수 없습니다.
- conio.h 헤더를 include 해준다.
34. 이전 오류를 복구할 수 없습니다. 컴파일이 중지됩니다.
- 상위에 생긴 C++ 소스 에러를 모두 올바르게 수정하고 컴파일을 다시 시도한다.
35. 구문 오류 : ']'
- [] 표시가 제대로 열리고 닫혔는지 확인해준다.
36. 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
- 새로운 C++ 에서는 각 상황에 알맞는 형식의 내장함수가 새로 추가되었다. 상황에 맞게 바꿔주도록한다.
37. 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead.
- 새로운 C++ 에서는 각 상황에 알맞는 형식의 내장함수가 새로 추가되었다. 상황에 맞게 바꿔주도록한다.
38. 'printf': This function or variable may be unsafe. Consider using printf_s instead.
- 새로운 C++ 에서는 각 상황에 알맞는 형식의 내장함수가 새로 추가되었다. 상황에 맞게 바꿔주도록한다.
39. 'scanf': This function or variable may be unsafe. Consider using scanf_s instead.
- 새로운 C++ 에서는 각 상황에 알맞는 형식의 내장함수가 새로 추가되었다. 상황에 맞게 바꿔주도록한다.
40. 'StudentInfo' 다음에 'bool'이(가) 올 수 없습니다. ';'이 있어야 합니다.
- StudentInfo 뒤에 ; 종결문이 제대로 적혀있는지 확인하고 추가해준다.
41. 'return' : 'bool'에서 'StudentInfo'(으)로 변환할 수 없습니다.
- return 반환하는 부분에 bool 로 선언된 것이 올바른 것이 확인해준다.
42. 구문 오류 : ';'이(가) '}' 앞에 없습니다.
- ';' 기호가 제대로 적혀있는지, 위치를 확인한다.
43. 구문 오류 : '>'
- > 연산자가 올바르게 사용되었는지 확인한다. 대소 비교에 사용된다.
44. 'sqrt' : 오버로드된 함수에 대한 호출이 모호합니다.
- 제곱근을 구하는 함수에 인수를 double 형으로 임시 선언해준다.
45. 이항 '!=' : 오른쪽 피연산자로 연산자가 없거나 허용되는 변환이 없습니다.
- 오류가 난 줄의 != 연산자 좌우의 형을 비교하고 같은것인지 확인한다.
46. '<' : 의미 없는 연산자입니다. 파생 작업이 있는 연산자여야 합니다.
- < 연산자를 사용하기 이전에 그 바로 전의 연산이 제대로 되어있는지 확인한다.
47. 초기화되지 않은 'dummyDay' 지역 변수를 사용했습니다.
- dummyDay의 초기값을 설정해준다.
48. 'Sort': 식별자를 찾을 수 없습니다.
- Sort 함수를 메인함수 위에 적어, preprocessing 해준다.
49. 'gets': This function or variable may be unsafe. Consider using gets_s instead.
- 새로운 C++ 에서는 각 상황에 알맞는 형식의 내장함수가 새로 추가되었다. 상황에 맞게 바꿔주도록한다.
50. 'strcmp' : 매개 변수 1을(를) 'char [1][1]'에서 'const char *'(으)로 변환할 수 없습니다.
- 매개 변수를 임시로 (const char*) 로 선언해준다.
51. 'double'에서 'float'(으)로 잘립니다.
- float 으로 사용되는 것을 double 로 확장해준다.
52. 'temp' :참조되지 않은 지역 변수입니다.
- temp 는 사용되지 않는 변수이므로 삭제해주도록 한다.
53. 상수에 줄 바꿈 문자가 있습니다.
- 상수가 올바르게 상수만 적혀있는지 확인한다.
54. 'y' : 선언되지 않은 식별자입니다.
- y 로 선언된 변수가 있는지, 오타인지 확인한다.
55. ';' : 제어된 빈 문이 있습니다. 이 문이 필요합니까?
- 아무 명령이 없는 문장이므로 삭제해준다.
56. 'menu' 레이블이 정의되지 않았습니다.
- goto 문에 사용될 레이블의 위치를 지정해준다.
57. 'Sort' : 함수는 3개의 매개 변수를 사용하지 않습니다.
- Sort 라고 정의된 함수가 사용하는 매개 변수의 갯수에 따라 소스를 수정해준다.
58. 구문 오류 : int'은(는) ';' 다음에 와야 합니다.
- int 앞에 ';' 기호가 제대로 적혀있는지 확인하고 추가해준다.
59. 함수 호출에 인수 목록이 없습니다. '&std::list<_Ty>::size'을(를) 사용하여 멤버에 대한 포인터를 만드십시오.
- size 라는 함수가 ()를 붙여 포인터로 만들어서 사용되었는지 확인한다.
60. '<=' : 'int'에서 'unsigned int (__thiscall std::list<_Ty>::* )(void) const'(으)로 변환되지 않았습니다.
- '<=' 연산자 양쪽의 변수 형이 'int' 로 같게 맞춰준다.
★ #operator not followed by macro argument name
매크로 함수의 정의에서 #연산자는 매개변수를 문자열화 하는데,
#연산자 뒤에 매개변수 이외의 것이 오면 발생한다.
★ #define printing(msg) printf("Message is " #mssg "\n");
위의 매크로 함수 printmsg의 인자인 msg를 오른쪽 식에서는 mssg로
잘못 사용했다. 이럴 경우 발생하는 에러인데, 이 에러는 매크로를
정의한 곳에서 발생하는 것이 아니라 이 매크로 함수를 사용한 곳에서
발생한다.
★ 'XXXXXXXX' not an argument
형식 매개변수가 함수의 매개변수 리스트에 없을 때 발생한다.
★ Argument # missing name
함수의 원형에서 #번째 매개변수 명을 빠뜨렸다.
★ Argument list syntax error
함수의 매개변수 리스트가 문법적으로 틀렸다.
★ Array bounds missing ]
배열을 정의하거나 선언할 때 ]를 빠뜨렸다.
★ Array size too large
배열의 크기가 65536바이트를 넘었다.
배열은 한 세크먼트 크기인 65536바이트를 넘을 수 없는데 실제로는
그 크기에 더 제한을 받는다.
★ Assembler statement statement too long
인라인 어셈블리 코드를 삽입하기 위한 asm문은 480자를 넘을 수 없다.
★ Bad configuration file
TURBO.CFG파일에 명령행 컴파일러(TCC.EXE)의 옵션으로 옳지 못한 문자가
들어있다. 각 옵션들이 -(데쉬)로 시작하지 않아서 발생할 경우가 많다.
★ Bad file name format in include directive
include에서 사용하는 파일에 " 나 < 또는 > 를 빠뜨렸다.
★ Bad ifdef directive syntax
#ifdef문의 뒤에는 매크로명이 아닌 다른 수치 상수나 수식등이 오면 이 에러가
발생한다. #ifdef문의 뒤에는 항상 매크로명이 와야 한다.
★ Bad ifndef directive syntax
#ifndef문의 뒤에는 매크로명이 아닌 다른 수치 상수나 수식등이 오면 이 에러가
발생한다. #ifndef문의 뒤에는 항상 매크로명이 와야 한다.
★ Bit field size syntax
#ifdef문이나 #ifndef문의 뒤에는 매크로명이 아닌 다른 수치 상수나 수식등이
오면 이 에러가 발생한다. #ifdef문이나 #ifndef문의 뒤에는 항상
매크로명이 와야 한다.
★ Cannot modify a const object
const로 선언된 값을 변경시키려 했다.
★ Case outside of switch
case문을 Switch문의 밖에서 사용했다.
★ Case statement missing :
case문에서 :를 빠뜨렸다.
★ Cast syntax error
cast에 잘못된 기호가 있다.
★ Character constant too long
문자 상수는 1바이트 또는 2바이트 크기의 데이터만을 가질 수 있는데, 그 크기를
넘어 섰다. 확장열 사용시 열슬래쉬(\)가 빠져 있는지 살표본다.
예) char ch;
...
ch = '/xff'; /* 역슬래쉬를 슬래쉬로 잘못 사용. 에러가 발생한다. */
★ Compound statement missing
여는 괄호와 닫는 괄호의 갯수가 같지 않다.
★ Conflicting type modifiers
한 포인터에 대해 near와 far의 키워드를 한꺼번에 선언하는 경우와 한 함수에서
함수의 변경자(cdecl, pascal, interrupt등)를 한꺼번에 사용할 경우 발생한다.
★ Constant expression required
상수 수식만을 사용해야 되는 곳에 변수나 수식 등이 들어가 있다.
★ Could not find file 'XXXXXXXX.XXX'
명령행에서 지정한 파일이 없다.
★ Declaration missing ;
struct문이나 union문에서 세미콜론(;)을 빠뜨렸다.
★ Declaration needs type or storage class
선언은 적어도 한개의 형이나 기억분류를 지정해 주어야 한다.
★ Declaration syntax error
선언에서 불필요한 기호가 들어가거나 필요한 기호가 빠졌다.
★ Default outside of switch
default문을 switch문의 밖에서 만났다.
★ Define directive needs an identifier
#define문의 뒤에는 항상 매크로 명이 와야한다. 매크로 명도
일종의 명칭(identifier)이므로 "의 문자는 사용할 수 없다.
★ Division by zero
소스 파일에 있는 수식에서 0으로 나누는 식이 있다.
★ Do statement must have while
do문은 while과 함께 쓰여야만 한다.
★ Do-while statement missing (
do-while문에서 ( 를 빠뜨렸다.
★ Do-while statement missing )
do-while문에서 ) 를 빠뜨렸다.
★ Do-while statement missing ;
do-while문에서 ;를 빠뜨렸다.
★ Duplicate case
switch문안의 case문에 같은 값을 갖는 case문을 두번이상 사용했다.
★ Enum syntax error
enum형 데이터의 선언이 올바르지 못하다. 기억부류 지정자, 키워드,
enum, 열거택, 열거 리스트, 변수명등의 나열 순서가 올바른지, 열거 멤버의
수치 지정이 제대로 되어 있는지 살펴본다.
★ Error directive:XXX
컴파일 도중에 #error 컴파일러 지시어를 만났다.
★ Error writing output file
디스크가 꽉 찼거나 기타 다른 이유로 목적 파일이나 실행 파일을 생성할 수
없을때 발생한다.
★ Expression syntax
컴파일러가 수식을 분석하다가 문제점을 발견하면 이 에러를 발생시킨다.
보통 다른 에러를 같이 동반한다. 연산자를 두 개 이상 연달아 사용하거나,
괄호의 짝이 맞지 않다던가, 세미콜론을 빠뜨렸다던가 등등에서 발생한다.
★ Extra parameter in call
함수를 호출할 때 함수의 선언에 표기된 것 보다도 많은 매개변수를
사용했다 (함수 포인터)
★ Extra parameter in call to XXXXXXXX
함수를 호출할 때 함수의 선언에 표기된 것보다도 많은 매개변수를 사용했다.
★ File name too long
#include문에서 지정한 파일명이 너무 길다.
★ For statement missing (
For문에서 ( 를 빠뜨렸다.
★ For statement missing )
For문에서 ) 를 빠뜨렸다.
★ For statement missing ;
For문에서 ; 를 빠뜨렸다.
★ Function call missing )
함수의 호출에서 매개변수에 사용한 괄호의 갯수가 틀리거나 닫는 괄호를
빠뜨렸다.
★ Function definition out of place
함수의 정의는 다른 함수의 내부에 있을 수 없다.
★ Goto statement missing label
Goto문에서 레이블을 생략했다.
★ If statement missing (
If문에서 ( 를 빠뜨렸다.
★ If statement missing )
If문에서 ) 를 빠뜨렸다.
★ Illegal character 'C'(0xXXX)
컴파일 도중 잘못된 문자를 만났다.
★ Illegal initialization
변수의 초기화가 틀렸다. 변수의 초기화는 상수식이거나, extern 또는
static으로 선언한 변수의 주소를 사용할 수 있다.
★ Illegal octal digit
8진수에서 8진법에 맞지 않는 수(8이나 9)를 사용했다.
★ Illegal pointer subtraction
포인터가 아닌데서 포인터를 뺐다.
★ Illegal structure operation
구조체는 . 연산자, & 연산자, sizeof 연산자, = 연산자를 사용하거나 또는
구조체를 함수로 건네 주거나 되돌려받는 일만 할 수 있다.
구조체끼리 == 연사자를 사용하거나, = 연산자 양변의 구조체가 서로 다른
데이터 형을 가질 때도 발생한다.
★ Illegal use of floating point
부동 소수점을 사용하는 수는 비트연산자나 shift연산자, indirection(*)을
사용할 수 없다.
★ Illegal use of pointer
포인터는 더하기, 빼기, 지정, 비교, Indirection(*), ->에만 사용할 수 있다.
이 외에 다른 연산을 할 때 발생하는 에러이다.
★ Improper use of a typedef symbol
typedef로 정의한 형명을 수식 내에서 단독으로 사용하였다. typedef로 정의한
형명은 캐스트 연산자나 아니면 변수의 선언에만 사용할 수 있다.
★ In-line assembly not allowed
소스 파일에 In-line 어셈블리가 들어있다. 이 때는 터보 C 명령행 버전인
tcc.exe를 이용해 컴파일 해야 한다.
★ Incompatible type conversion
서로 형변환을 할 수 없는 것끼리 형변환을 하려 했다. 함수와 함수가 아닌것간의
변환과 구조체나 배열과 스칼라 형간의 변환 부동 소수점과 포인터간의 변환은
할 수 없다.
★ Incorrect command line argument:XXXXXXXX
명령행 컴파일러 사용시 인자가 옳지 못하다.
★ Inclrrect configuration file argument:XXXXXXXX
명령행 컴파일러의 configuration파일인 turboc.cfg에 옳지 못한 내용이 들어
있다. 각 옵션의 앞에 -가 붙어 있어야 한다.
★ Incorrect number format
16진수에서 소수점을 만났다.
★ Incorrect use of default
default문 뒤에 콜론(;)이 빠졌다.
★ Initializer syntax error
초기화를 하는 식에 연산자가 빠져 있거나 필요없는 연산자를 사용했거나 괄호의
잘못 사용에서 발생한다.
★ Invalid indirection
void형 포인터에 indirection(*)을 사용했다.
★ Invalid macro argument separator
#define문으로 매크로 함수를 정의할 때는 매크로 함수의 매개변수들은
쉼표(,)로 구분되어져야 한다.
★ Invalid pointer addition
두 포인터를 더하려 했다.
★ Invalid use of arrow
화살표 연산자(->)를 잘못 사용했다.
★ Invalid use of dot
점 연산자(.)를 잘못 사용했다.
★ Lvalue required
좌변값을 필요로 하는 곳에 좌변값이 아닌 다른 값이 놓여져 있다.
보통 = 연산자의 좌측에 오는 값이 대입할 수 없는 수식이나 상수식이 왔을 경우
발생한다. 또한 번지 연산자(&)를 좌변값이 아닌 식에 사용하였을 경우에도
발생한다.
★ Macro argument syntax error
#define문으로 매크로 함수를 만들 때 매개변수가 있어야 할 자리에 엉뚱한
문자가 있으면 발생한다.
★ Mismatched number of parameters in definition
함수의 정의에 있는 매개변수와 함수의 원형(prototype)에 있는 매개변수의
내용이나 갯수가 다르다.
★ Misplaced break
switch문이나 다른 루프(for, while, do-while등)의 바깥에서 break문을 사용했다.
★ Misplaced continue
switch문이나 다른 루프(for, while, do-while등)의 바깥에서 continue문을 사용했다.
★ Misplaced decimal point
소수점에 사용하는 점(.)을 잘못 사용했다.
★ Misplaced else
if문 없이 else문을 사용했다. 불필요한 세미콜론이나 괄호의 사용에서도
발생할 수 있다.
★ Misplaced elif directive
컴파일러가 #if, #ifdef, #ifndef문과 짝짓지 못한 #elif문을 만났다.
★ Misplaced else directive
컴파일러가 #if, #ifdef, #ifndef, #elif문과 짝짓지 못한 #else문을 만났다.
★ Misplaced endif directive
컴파일러가 #if, #ifdef, #ifndef, #elif, #else문과 짝짓지 못한
#endif문을 만났다.
★ Must take address of memory location
레키스터 변수에는 주소 연산자(&)를 사용할 수 없다.
★ No file name ending
#Include문에 따옴표(")나 괄호(>)가 빠졌다.
★ No file names given
명령행 컴파일러에서 컴파일할 파일명을 지정하지 않았다.
★ Non-portable pointer assignment
포인터를 포인터 아닌 곳에 대입하려 했다. 에러 메시지를 막기 위해
case 연산자를 사용해야 한다.
★ Non-portable pointer comparison
포인터를 포인터 아닌 것과 비교하려 했다. 에러 메시지를 막기 위해
cast 연산자를 사용해야 한다.
★ Non-portable return type conversion
return문에 있는 식이 함수의 형과 다르다.
★ Not an allowed type
C에서 허용되지 않는 형의 데이터를 선언하였다.
★ Out of memory
컴파일을 하기에 메모리가 부족하다. 메모리를 많이 차지하는 램상주
프로그램이 있을 경우 이를 제거한다.
소스 파일이 너무 클 경우에는 소스 파일을 단순화 시키거나 소스 파일을
분할하여 분할 컴파일을 해야 한다.
★ Pointer required on left side of ->
->의 왼쪽 피연산자는 반드시 구조체나 공용체 포인터이어야 한다.
★ Redeclaration of 'XXXXXXXX'
이미 선언되어 있는 identifier를 선언하려 했다.
★ Size of structure or array not known
배열을 정의할 때 생략할 수 없는 배열 크기를 생략 했거나, 배열의 크기를
빠뜨린채로 외부 배열을 선언하고 sizeof의 피연산자로 사용했거나,
그 외부 배열을 사용하면 발생한다.
★ Statement missing ;
식이나 문장의 끝에 세미콜론이 빠져있다.
★ Structure or union syntax error
구조체나 공용체 선언이 문법에 어긋났다.
★ Structure size too large
구조체의 크기가 너무 커서 사용가능한 메모리에 그 구조체를 생성할 수 없다.
★ Subscripting missing ]
배열 첨자 지정에 ]를 빠뜨렸다.
★ Switch statement missing (
Switch문에서 ( 를 빠뜨렸다.
★ Switch statement missing )
Switch문에서 ) 를 빠뜨렸다.
★ Too few parameters in call
함수의 호출에 매개변수가 모자란다.
★ Too few parameters in call to 'XXXXXXXX'
함수의 호출에 매개변수가 모자란다.
★ Too many cases
switch문안에서 case문을 너무 많이 사용했다. 한 switch문에서
257개 까지의 case문을 사용할 수 있다.
★ Too many decimal points
부동 소수점 상수에 한 개 이상의 점(.)이 사용되었다.
★ Too many decimal cases
Switch문안에 한 개 이상의 case문이 사용되었다.
★ Too many exponents
부동 소수점 상수에 한 개 이상의 지수가 있다.
★ Too many initializers
초기화가 허용되는 범위보다 맣은 초기화를 했다. 주로 다음과 같은
경우에 이 에러가 발생한다.
(예) int num[3] = {1, 2, 3, 4} /* 세개의 데이터를 가질 수 있는 배열에
네개의 초기화 값을 대입했다 */
★ Too many storage classes in declaration
한 선언에서 여러개의 기억부류를 지정했다.
★ Too many types in declaration
한 선언에서 여러개의 형(type)을 지정했다.
★ Too much auto memory in function
한 함수에서 자동변수를 너무 많이 선언했다.
★ Too much code defined in file
현재 소스 파일에 있는 총 함수의 크기가 64K바이트를 넘어섰다.
소스 파일을 간단히 고치거나 소스를 분할하여 컴파일한다.
★ Too much global data defined in file
선언한 전역 변수의 크기가 64K바이트를 넘었다.
너무 큰 배열등을 없애거나 경우에 따라 프로그램을 재구성해야 한다.
★ Two consecutive dots
C에서는 (..)은 사용되지 않는다.
★ Type mismatch in parameter #
함수의 원형과 그 함수를 사용하는 곳에서의 매개변수의 형이 다르다.
(함수포인터)
★ Type mismatch in parameter # in call to 'XXXXXXXX'
함수의 원형과 그 함수를 사용하는 곳에서의 매개변수의 형이 다르다.
(실제함수)
★ Type mismatch in parameter 'XXXXXXXX'
함수의 원형과 그 함수를 사용하는 곳에서의 매개변수의 형이 다르다.
(함수포인터)
★ Type mismatch in parameter 'XXXXXXXX' in call to 'YYYYYYYY'
함수의 원형과 그 함수를 사용하는 곳에서의 매개변수의 형이 다르다.
(실제함수)
★ Type mismatch in redeclaration of 'XXX'
변수가 원래 선언된 것과 다른 형으로 다시 그 변수를 선언하였다.
★ Unable to create output file 'XXXXXXXX.XXX'
출력파일(보통 .obj파일)을 생성하지 못한다. 디스크가 꽉 찼거나
쓰기 방지(write protect)가 되어있거나 등등에서 발생한다.
★ Unable to create turboc.$ln
tcc.exe가 링크를 하기 위해 tlink.exe를 호출하기 직전에 생성하는
임시 파일인 turboc.$ln을 만들지 못한다. 바로 위와 같은 경우에
발생할 수 있다.
★ Unable to execute command 'XXXXXXXX'
터보 링커(tlink.exe)나 터보 어셈블러(tasm.exe)를 찾지 못한다.
★ Unable to open include file 'XXXXXXXX.XXX'
#include문제 지정한 헤더 파일을 읽을 수 없다.
★ Unable to open input file 'XXXXXXXX.XXX'
컴파일할 파일 'XXXXXXXX.XXX'를 읽어올 수 없다.
★ Undefined label 'XXXXXXXX'
goto문에 지정한 레이블을 함수 블럭내에서 찾을 수 없다.
★ Undefined structure 'XXXXXXXX'
정의 되지 않은 구조체 'XXXXXXXX'를 사용하였다.
★ Unexpected end of file in comment stated on line #
주석문의 사용에서 */를 빠뜨렸을 경우에 발생한다.
★ Unexpected end of file in conditional stated on line #
#endif를 빠뜨렸을 경우에 발생한다.
★ Unknown preprocessor directive:'XXX'
전처리기 지시어로 틀린 명령이 들어가 있다.
★ Unterminated character constant
'의 갯수가 맞지 않는다.
★ Unterminated string
문자열이나 문자 상수에서 '또는 "를 빠뜨렸다.
★ User break
컴파일 도중에 Ctrl-Break키를 눌렀다.
★ While statement missing (
While문에서 ( 를 빠뜨렸다.
★ While statement missing )
While문에서 ) 를 빠뜨렸다.
★ Wrong number of arguments in call of 'XXXXXXXX'
매크로 함수 'XXXXXXXX'를 호출할 때 지정한 실 매개변수와 형식
매개변수의 갯수가 다르다.
★ 'XXXXXXXX' declared but never used
자동 변수를 선언해 놓았지만 한번도 사용하지 않았다. 이 메시지는 자동변수를
선언한 함수의 끝에서 발생한다.
★ 'XXXXXXXX' is assigned a value which is never used
자동 변수를 선언해 놓고 어떤 값을 대입시키기는 했지만 한번도 사용(참조)하지
않았다.
★ 'XXXXXXXX' not part of structure
구조체의 멤버 연산자인 . 이나 ->의 오른쪽 피 연산자가 구조체의 멤버가 아니다.
★ Ambiguous operators need parentheses
쉬프트 연산자. 비트 연산자, 관계 연산자가 괄호 없이 사용될 때 이 경고가
발생한다.
★ Both return and return of a value used
한 함수에서 여러번 return문이 있을 때 각각이 되돌리는 값의 형(type)이 서로
같지 않다.
★ Call to function with no prototype
함수의 선언이 없이 함수를 사용했다.
★ Call to function 'XXXX' with no prototype
함수 'XXXX'를 선언 없이 사용했다.
★ Code has no effect
아무런 효과가 없는 수식을 사용했다. 예를 들어 a+b;라는 수식은 에러를 발생
시키지는 않지만 아무일도 하지 않게 되고 이 경고를 발생시킨다.
★ Constant is long
32767보다 큰 10진 상수나 65535보다 큰 8진수 또는 16진수를 뒤에 1이나 L을
붙이지 않고 사용했다. 이 때 사용한 상수는 long형으로 처리된다.
★ Constant out of range in comparison
관계연산자의 양변을 비교할 때 양변의 값이 비교 가능한 범위를 벗어났다.
서로 다른형의 데이터를 비교할 때는 두 값이 같은 허용범위 안에 있어야 한다.
예를 들면, unsigned형과 int형의 데이터를 비교 하려면 둘다 0에서 32767사이의
값을 가지고 있어야 한다. 또, unsigned형과 -1이라는 값과의 비교는
무의미함으로 주의해야 한다.
★ conversion may lose significant digits
unsigned long형이나 long형의 데이터가 int형의 데이터로 변환될 때 이 경고가
발생한다. 변환 전의 값이 int형 범위 안에 속해 있으면 별문제가 없자만,
int형의 범위를 벗어나는 값은 데이터의 앞의 두 바이트가 없어져 버리므로
주의해야 한다.
★ Function should return a value
void형이 아닌 함수인데 되돌림 값을 되돌리지 않았다.
★ Hexadecimal or octal constant too large
문자상수나 문자열 상수내에서 사용한 16진 또는 8진 확장열의 값이
1바이트를 넘어섰을 때 발생한다.
★ Mixing pointers to signed and unsigned char
signed char와 unsigned char간의 변환이 일어날 때 발생한다. 이 경고는
실행에 어떤 해도 주지 않는다.
★ No declaration for function 'XXXXXXXX'
함수를 호출하기 전에 그 함수가 선언이나 정의가 미리 되어있지 않으면 발생한다.
★ Non-portable pointer assignment
캐스트 연산자의 사용을 하지 않고 포인터와 포인터가 아닌 것을 서로
대입 시키려 했다.
★ Non-portable pointer comparison
캐스트 연산자의 사용을 하지 않고 포인터와 포인터가 아닌 것을 서로 비교
하려 했다.
★ Non-portable pointer conversion
함수형이 포인터 형인데 포인터가 아닌 값을 되돌리려고 했거나 그 반대의 일을
시도 했다. 캐스트 연산자를 사용하면 이 경고를 막을 수 있다.
★ Parameter 'XXXXXXXX' is never used
함수의 매개변수를 함수내에서 한번도 사용하지 않았다.
★ Possible use of 'XXXXXXXX' before definition
자동변수를 초기화시키지 않은 채로 사용하였다.
★ Possibly incorrect assignment
if, while, do-while문의 조건식에서 대입 연산자를 사용하였다.
보통 ==를 =로 잘못 사용한데서 비롯되지만 대입 연산자를 사용하여야 할
경우에는 다음과 같이 한다.
(예) if(ch = getch()) ...
↓
if((ch=getch()) != 0) ...
★ Redefinition of 'XXXXXXXX' is not identical
매크로 정의를 한 후에 또다시 재정의를 하는데 그 값이 이전에 정의한 값과
다르다. 다른 값으로 정의 해야할 필요가 있으면 #undef문을 사용하여 매크로
정의를 취소한 후에 다시 정의해야 한다.
★ Restarting compile using assembly
tcc를 이용하여 컴파일할 때 소스 파일내에 asm(인라인 어셈브리)이
사용되었으면 어셈블러로 다시 컴파일한다는 경고를 낸다.
★ Structure passed by value
구조체를 몽땅 함수로 넘겨 주었다. 프로그램의 실행에는 전혀 무해하지만,
보통 구조체의 데이터는 구조체 포인터를 사용하여 전달해 주는 것이
바람직하다.
★ Superfluous & with function or array
함수명은 그 자체가 함수를 가리키는 번지값을 가지고 있는데, 필요없는
번지연산자(&)를 함수명에 사용하였다.
★ Suspicious pointer conversion
다른 형을 가리키는 포인터끼리의 형변환이 일어났다. 변환이 정당할 경우에는
캐스트 연산자를 사용하여 이 경고를 없앨 수 있다.
그렇지 않을 경우에는 이 경고 메시지를 발생 시킨부분을 확실히 고쳐야 하며,
그대로 방치하거나 캐스트 연산자 남용의 경우에는 무지무지 심각한 버그를
유발할 수 있다.
★ Undefined structure 'XXXXXXXX'
정의되지 않은 구조체 택을 사용하였다.
보통 구조체 택의 철자 오류에서 나타난다.
★ Unknown assembler instuction
인라인 어셈블리에 허용되지 않는 어셈블리 코드가 들어가 있다.
★ Unreachable code
프로그램 중에 제어가 도달하디 낳는 부분이 있다. 즉 한번도 실행되지 않는
부분이 있다. break, continue나 goto문을 잘못 하용했거나,if나 while문
등에서 조건식이 무한루프가 되어 버렸거나 할 경우에 발생한다.
★ void functions may not return a value
void형 함수는 아무 값도 되돌릴 수 없는데 return문이 어떠한 값을
되돌리려 했다.
★ Zero length structure
크기가 0인 구조체를 정의해 놓았다.
[출처] [Tip] C++ 소스 에러 목록|작성자 밍찌
'삽질' 카테고리의 다른 글
애프터버너(after burner)로 채굴량 늘리기 (0) | 2021.05.19 |
---|---|
windows10 c++ builder personal 설치 (0) | 2017.06.05 |
수학 기호 정리 (2) | 2016.03.24 |
AVD 생성시 권한 문제 (0) | 2016.03.08 |
openCV 카메라 및 1. 2. 버전 예제 문제 (0) | 2016.03.08 |