ERROR: do not initialise statics to false

Question about git commit rule

I git commit a patch,
The patch has a "static int xxxxxxxxxxxxxxxxxxxxxxxxxx = 0;"
It show error messge "ERROR: do not initialise statics to false"
Why can't initialize a static variable = false in function ?

All static variable that is uninitialize are moved to BSS section.
Linux initialize these static variable to zero in BSS section.
So just write "static variable" in function.

Example :
incorrect.c

#include <stdio.h>
int main()
{
        static int xxxxxxxxxxxxxxxxxxxxxxxxxx = 0;
        static int aaaaaaaaaaaaaaaaaaaaaaaaaa = 0;

        printf("exit \n");
}

correct.c

#include <stdio.h>
int main()
{
        static int xxxxxxxxxxxxxxxxxxxxxxxxxx;
        static int aaaaaaaaaaaaaaaaaaaaaaaaaa;

        printf("exit \n");
}
gcc -o correct correct.c
objdump -x correct | grep bss
 24 .bss          00000010  0000000000601040  0000000000601040  00001040  2**2
0000000000601040 l    d  .bss   0000000000000000              .bss
0000000000601040 l     O .bss   0000000000000001              completed.7262
0000000000601044 l     O .bss   0000000000000004              aaaaaaaaaaaaaaaaaaaaaaaaaa.2200
0000000000601048 l     O .bss   0000000000000004              xxxxxxxxxxxxxxxxxxxxxxxxxx.2199
0000000000601050 g       .bss   0000000000000000              _end
0000000000601040 g       .bss   0000000000000000              __bss_start

Reference:
http://www.jollen.org/blog/2007/01/no-zero-initialized-in-bss.htmlbvg

转载于:https://www.cnblogs.com/youchihwang/p/9535303.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值