다음을 통해 공유


컴파일러 오류 C2356

초기화 세그먼트는 변환 단위 동안 바뀌지 않아야 합니다.

가능한 원인:

  • #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