C语言模块化编程的基础是:把所有要隐藏的数据放在C文件中,所有要暴露给用户的信息放在API头文件,作为库和上层应用的桥梁。所以API头文件中的函数声明、数据类型等会被库自身和调用者共享。这就要确保库和上层应用的编译环境对它们有一致的解析,下列可能导致解析不一致的元素要格外注意:
1)char、enum这两个元素会被编译选项改变属性,因此最好不要直接出现在API接口中,如果非要包含,要注意编库和编上层应用时,char的signed/unsigned属性和enum的长度这两个编译器选项须一致。(陷阱篇详述)