一般情况下,未明确赋初值的全局变量会被自动清零,而且ANSI C中似乎也有这一规定,之前写程序都默认这是没有例外的规定了。然而,前段时间在调试28030程序的时候发现,未赋初值的全局变量并没有被清零,而是一个随机值,这说明在TI的DSP中,全局变量并不会自动清零。TI论坛中的这个讨论也证实了这一结论,由此可见,TI的编译器的确有些很特别的地方……下面来具体谈谈全局变量清零这个问题。
一般情况下,未明确赋初值的全局变量会被自动清零,而且ANSI C中似乎也有这一规定,之前写程序都默认这是没有例外的规定了。然而,前段时间在调试28030程序的时候发现,未赋初值的全局变量并没有被清零,而是一个随机值,这说明在TI的DSP中,全局变量并不会自动清零。TI论坛中的这个讨论也证实了这一结论,由此可见,TI的编译器的确有些很特别的地方……下面来具体谈谈全局变量清零这个问题。
函数指针一般的声明方式为:
1 | Return (* pf)(Params); |
其中Return
代表返回值的类型,Params
代表函数参数列表,如下面两个比较简单的声明:
1 | void (* pf1)(int, char *); |
HTTP中,确定报文结束有几种不同方法,较为常见的是:
Content-Length
检测若不关闭TCP连接,也不在HTTP头部加上Content-Length
字段,则无法正确确定HTTP报文是否结束,对于浏览器来说,此时就会一直处于加载状态。
所谓Population Count算法,即是指计算一个二进制数中1的个数的算法。具体来说,就是任意给定一个无符号整数N,求N的二进制表示中1的个数,比如N = 5(0101)时,返回2;N = 15(1111)时,返回4。
这个问题是一个经典的面试题目,在实际中也有应用。关于这个问题,以下两篇博客文章中有较详细的论述:
在此,仅对其中一些较为常规和较为巧妙的方法做一总结,并比较一下他们的执行效率。