我是一名Python开发人员。我正在学习C 编程语言。我已经涵盖了大部分基础知识,并慢慢转向 C 的高级用法。我有以下问题。
在 C 中,
#ifndef _obj_h
基于我们使用的下划线。例如。如果我的头文件是obj.h
,那么我会将其用作_obj_h
。如果我有一个名为my_test_header.h
的头文件怎么办?我会将其用作_my_test_header_h
吗?这里的命名约定是什么?C99 是否允许及时初始化,例如for( int i = 0 .... ) ?我的编译器抛出错误。但在许多书籍中它被定义为合法的。
欢迎分享任何有关 C 编程高级使用的好资源,其中讨论了开发策略、语言使用。
最佳答案
- 主要也是最重要的命名约定是不要使用同一标点符号的多个连续实例!!!!!!!!
除了通常的烦恼之外:以下划线开头的标识符被保留给实现。不要使用它们。另外,预处理器宏通常用 ALL_CAPS
编写,以便轻松与普通标识符、函数等区分开来。因此,请像这样编写包含防护:
#ifndef MYHEADER_H
#define MYHEADER_H
/* ... */
#endif
C99 does it allow just in time initialization like for e.g. for( int i = 0 .... )? My compiler throws error. But in many books it is defined as legal.
然后告诉你的编译器使用C99。也许可以尝试 -std=c99
,适用于 GCC 和 clang(但对于 clang
来说不是必需的,它默认为 C99 模式)。
Share any good resource for advanced usage of C programming, which discusses about the development strategies, usage.
没有。
关于c - C 编程的一般问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221167/