2.8.15. __LC_TIME_DEF

此宏用于创建在设置时间或日期值格式时使用的块。 Example 2.19 显示了 rt_locale.h 中的定义和示例代码。

对于所有这些宏,前两个参数是符号前缀和区域设置名称。 生成的区域设置块的地址由表达式 &symprefix_start 确定,索引项由表达式 &symprefix_index 确定。

Example 2.19. LC_TIME_DEF


#define __LC_TIME_DEF(sym,ln,wa,wf,ma,mf,am,pm,dt,df,tf) \

static const int sym##_index = ~3 & (3 + (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+sizeof(am)+sizeof(pm)+ \

sizeof(dt)+sizeof(df)+sizeof(tf)+ \

60+(~3 & (3 + sizeof(ln))))); \

static const char sym##_lname[~3 & (3 + sizeof(ln))] = ln; \

static const int sym##_pname = -4-(~3 & (3 + sizeof(ln))); \

static const int sym##_start = 52; \

static const int sym##_wfoff = (sizeof(wa)+52); \

static const int sym##_maoff = (sizeof(wa)+sizeof(wf)+52); \

static const int sym##_mfoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+52); \

static const int sym##_amoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+52); \

static const int sym##_pmoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+sizeof(am)+52); \

static const int sym##_dtoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+sizeof(am)+sizeof(pm)+52); \

static const int sym##_dfoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+sizeof(am)+sizeof(pm)+ \

sizeof(dt)+52); \

static const int sym##_tfoff = (sizeof(wa)+sizeof(wf)+sizeof(ma)+ \

sizeof(mf)+sizeof(am)+sizeof(pm)+ \

sizeof(dt)+sizeof(df)+52); \static const int sym##_wasiz = (sizeof(wa)/7); \

static const int sym##_wfsiz = (sizeof(wf)/7); \

static const int sym##_masiz = (sizeof(ma)/12); \

static const int sym##_mfsiz = (sizeof(mf)/12); \

static const char sym##_watxt[] = wa; \

static const char sym##_wftxt[] = wf; \

static const char sym##_matxt[] = ma; \

static const char sym##_mftxt[] = mf; \

static const char sym##_amtxt[] = am; \

static const char sym##_pmtxt[] = pm; \

static const char sym##_dttxt[] = dt; \

static const char sym##_dftxt[] = df; \

static const char sym##_tftxt[] = tf;

用法

请参阅_get_lc_time()。 有关编译器优化副作用的详细信息,另请参阅__LC_CTYPE_DEF

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential