2010-08-13 2 views
1

C++ 's Когда я прослеживать один с открытым исходным кодом, я увидел кого-то есть следующий кодПочему вы должны использовать „data_seg“

#prama data_seg(".XXXX") 
static char *test=NULL; 
FILE *f1; 
#prama data_seg() 

Однако, даже после проверки http://msdn.microsoft.com/en-us/library/thfhx4st(VS.80).aspx, я до сих пор не знаю, почему мы должны сделать так, , может кто-нибудь помочь мне понять эту часть?

спасибо

+1

Помните, что это не «C++» data_seg, а компиляторы, понимающие прагму 'data_seg'. – GManNickG

ответ

3

Это обычно делается, чтобы разделить данные, которые обозначенную быть в этом сегменте. Код, который вы указали выше, обычно находится в DLL. Вы также используете файл .def, который указывает, что сегмент «.XXXX» будет иметь атрибут «SHARED».

Когда вы делаете все это, данные в этом сегменте распределяются между всеми процессами, загружающими DLL, поэтому эти переменные распределяются между всеми этими процессами.

Смежные вопросы