C
跳转到导航
跳转到搜索
宏
Linux定义了如下宏
linxu
__linux__
另外参见Pre-defined C/C++ Compiler Macros。
gcc 定义了 __GNUC__
宏。
国际化
要让程序使用本地语言的消息,需要如下初始化代码
#include<locale.h>
setlocale(LC_ALL, "");
要使用gettext翻译本程序,除上述外还需要如下代码
#include<libintl.h>
#define _(x) gettext((char *)(x))
bindtextdomain("test", "locale");
textdomain("test");
参见gettext。
注意事项
文件大小
标准C的文件操作函数不支持对超过2G的文件读取,参见 Vimer的程序世界:linux下获取文件大小以及fseek(3)。
__USE_GNU
在某些头文件(如<fcntl.h>中的 O_DIRECTORY
)之前可能需要定义一下这个宏。
但是定义在<sys/stat.h>之前无效。
参见
外部链接
- 使用 getopt() 进行命令行处理
- 64位平台C/C++开发注意事项 | 酷壳 - CoolShell.cn
- C语言中if (p==NULL)的是与非 – 我的宝贝孙秀楠 ﹣C++, Lua, 大连,程序员
- Vimer的程序世界 » printf-小代码,大问题
- 学习C语言的教材 - 阮一峰的网络日志
- 技巧:Linux 动态库与静态库制作及使用详解
- EOF是什么? - 阮一峰的网络日志
- 向C语言致敬
- 图灵社区 : 阅读 : C语言:丹尼斯·里奇的不朽遗产
- gcc 匿名函数 - 哆啦比猫's Blog - I'm an ArchLinuxer
- How to make Linux shared library executable | Heiher's Blog
- Deep C
- A Tale of Two Standards (The Low Point -- Jeremy Allison Column Archive), 关于 POSIX 及 Win32 标准
- python写文件打开后是乱码 - SegmentFault: 在 Windows 上交错调用标准 C 读写函数而不进行定位操作是有问题的。
- 那些难以记住的 C 语言中的类型声明 - SegmentFault
- 求值过程中的副作用与顺序点
教程
- Linux C编程一站式学习, [1], [2](比较旧), [3], 编写中的新版
- 朴素linux,主要讲解 C 语言和 Linux 上二进制文件实现细节
- The Lost Art of C Structure Packing
- Geoff's site: On Learning C, Part 2: Zed Shaw's Learn C the Hard Way
编码风格
库和工具
- Integer Overflow Checker
- Cello • High Level Programming C
- glibc identifier search
- libcstl,使用标准C语言编写的通用的数据结构和常用算法的库
- uthash, C macros for hash tables and more
- Comparison of C/POSIX standard library implementations for Linux