我是一名java程序员,最近做一个linux c项目,我习惯了在哪使用变量就在哪定义。
c语言的变量定义必须在函数头部吗?最近我的c项目遇到头痛的bug,发送的字符串被截断,不知道和我这个习惯有关系没?排查了几个月都没找到更本原因,我快疯了。
我是一名java程序员,最近做一个linux c项目,我习惯了在哪使用变量就在哪定义。
c语言的变量定义必须在函数头部吗?最近我的c项目遇到头痛的bug,发送的字符串被截断,不知道和我这个习惯有关系没?排查了几个月都没找到更本原因,我快疯了。
可以把源文件扩展名改成.cpp,.cxx或是.cc,或是强制以C++方式编译源码,然后就可以随处定意变量了,如果禁用C++的RTTI和Exception,也不使用模板,几乎不会因为使用C++代来任何副作用,还可以用命名空间隔离有冲突的符号名,这种C++编程风格叫"Better C"风格,我常以这种风格写内核驱动。有时候在内核代码中用一个命名空间包含应用层头文件,混合使用两者的数据结构定义。
没错这是规范,变量都要写在函数的开始因为编译器要预处理