Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Error C2356
Collapse the table of content
Expand the table of content

Compiler Error C2356

initialization segment must not change during translation unit

Possible causes:

  • #pragma init_seg preceded by segment initialization code

  • #pragma init_seg preceded by another #pragma init_seg

To resolve, move the segment initialization code to the beginning of the module. If multiple areas must be initialized, move them to separate modules.

The following sample generates 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

Community Additions

© 2015 Microsoft