개발자가 요청해 오기를 컴파일 과정에서 다음과 같은 오류를 만났는데 원인을 모르겠으니 찾아달라고 한다.
원인을 찾다가 다음과 같은 결론을 얻었다.
"SVBE0011I2_bak.c", line 1686: error #2032: expression must have arithmetic type |
1050 라인의 mftpd_svfndbsci_out mftpd_svfndbsci_out; 의 이 변수 선언이 문제입니다.
SVBE_SVFNDBSCI_INFO 는 매크로로서 svbeCommBuff.h 속에
#define SVBE_SVFNDBSCI_INFO PFM_CBITEM_PTR( IDX_SVBE_SVFNDBSCI_INFO, mftpd_svfndbsci_out)
와 같이 선언 되어 있다.
이것이 프로그램 속에 풀려서 적용된 후 컴파일이 이루어 지는데
PFM_CBITEM_PTR( IDX_SVBE_SVFNDBSCI_INFO, mftpd_svfndbsci_out ) 의 mftpd_svfndbsci_out 부분이 위에서 변수로 선언해 놓아 버림으로써 타입으로 인식되지 않는 문제가 발생된다.
따라서 프로그램 속에서
// Variables Declaration |
와 같이 지역변수 명을 타입명과 동일하게 선언하지 않아야 한다.
매크로 속의 타입과 변수명이 충돌되기 때문이다.
보통의 경우는 위와 같이 타입명과 동일한 변수명을 선언하지 않는데 이분이 약간 특이한 코딩을 하고 있는 것이다.
비슷한 케이스의 오류로서
'컴퓨터활용 > 티맥스' 카테고리의 다른 글
Full GC 발생시 아래사항을 숙지하여 Heap dump를 떠야할 (0) | 2008.05.19 |
---|---|
DBIO EXECSQL 실행시 "ORA-00932: 일관성 없는 데이터 유형" 발생하는 경우 (0) | 2008.05.19 |
dlcall 오류 날 때 (0) | 2008.05.19 |
[디지털데일리] 코어뱅킹 솔루션 시장, 4사 경쟁구도 치열 (0) | 2008.05.12 |
view 의 출력변수 생성시 오류 (0) | 2008.04.24 |