초기화 세그먼트는 변환 단위 동안 바뀌지 않아야 합니다.
가능한 원인:
#pragma init_seg
세그먼트 초기화 코드 앞에#pragma init_seg
앞에 다른#pragma init_seg
이 문제를 해결하려면 세그먼트 초기화 코드를 모듈의 시작 부분으로 이동합니다. 여러 영역을 초기화해야 하는 경우 별도의 모듈로 이동합니다.
다음 샘플에서는 C2356을 생성합니다.
// C2356.cpp
#pragma warning(disable : 4075)
int __cdecl myexit(void (__cdecl *)());
int __cdecl myexit2(void (__cdecl *)());
#pragma init_seg(".mine$m",myexit)
#pragma init_seg(".mine$m",myexit2) // C2356