当前位置 博文首页 > 我的地盘我做主:【C语言】C语言实现静态代码块
有这样一个需求,希望某函数里的一段代码(如初始化)仅执行一次。
比如:
此时就没办法直接用下面两种方式实现:
static INT32 szArrCountryCode[CARD_NUM] = {-1}
for (i=0; i<CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
来实现。
如果是Java语言,非常简单,可利用static的代码块来做:
static{
int[] szArrCountryCode= new int[CARD_NUM];
for(int i = 0; i < CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
}
staic BOOL bSzArrCountryCodeInit = FALSE;
if (!bSzArrCountryCodeInit )
{
for (i=0; i<CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
bSzArrCountryCodeInit = TRUE;
}
void initszArrCountryCode()
{
for (i=0; i<CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
bSzArrCountryCodeInit = TRUE;
}
static BOOL bSzArrCountryCodeInit = FALSE;
bSzArrCountryCodeInit == FALSE?(initszArrCountryCode()):;
BOOL initszArrCountryCode()
{
for (i=0; i<CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
return TRUE;
}
static BOOL bSzArrCountryCodeInit = initszArrCountryCode();
void initszArrCountryCode()
{
for (i=0; i<CARD_NUM; i++)
{
szArrCountryCode[i] = -1;
}
}
static bool dummy = (initszArrCountryCode(),true);
如本文对你有些许帮助,欢迎打赏或通过里面链接购买书籍:
支付宝打赏方式及我的购物小店