سؤال

في Visual Studio ، يمكنني إجبار استخدام 32 بت من الوقت عن طريق إعلان _use_32bit_time_t هل هناك ما يعادل مماثل لـ GCC؟ أم أنها دائما 32 بت أم أنها دائما 64 بت؟

هل كانت مفيدة؟

المحلول

ال time_t لا يتم تعريف النوع بواسطة GCC بل بواسطة مكتبة النظام. على Linux ، هذا هو glibc ، ويحدد time_t في time.h رأس:

typedef __time_t time_t;

الذي بدوره محدد في bits/types.h:

__STD_TYPE __TIME_T_TYPE __time_t;

(__STD_TYPE التعريف غير مثير للاهتمام) ،

__TIME_T_TYPE تم تعريفه في bits/typesizes.h:

#define __TIME_T_TYPE __SLONGWORD_TYPE

الذي بدوره محدد في bits/types.h:

#define __SLONGWORD_TYPE long int

وهو 32 بت على نظام 32 بت ، 64 بت على 64 بت. كل هذه التعريفات غير مشروطة ، لذلك ، لا _USE_32BIT_TIME_T ما يعادل GLIBC.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top