头文件中声明和#defines 的首选顺序

joh*_*ohn 2 c linux macros coding-style header-files

我正在Linux平台上用C语言编程。#defines我想知道应该是声明和头文件中的顺序。

例如,如果我的头文件包含以下内容,任何人都可以建议我安排所有这些声明、宏、外部声明等函数的完美顺序应该是什么。

就可读性和编码标准而言,这对于在头文件中正确排列所有这些内容非常有益。

下面是示例头文件(我想按正确的顺序排列以下内容):

 #include <pthread.h>                   //  Including Header files 
 #include <signal.h>

 #define IMAGE_DIRECTORY                 "Abcdefgh..."   //  Providing #defines 
 #define FAILED_TO_RECOGNIZE             "Xykbkksk..."
 #define PROGRESS_FRAME_COLOR            "#8e8ea1"
 #define FRAME_BG_COLOR                  "#7c90ac"      

 #define PRINT_FUNCTION_NAME fprintf(stderr, 
                   "CTRL IN FUNCTION : %s\n",__func__);   // Macro like functions 
typedef struct {                                           
        int userId;                                      // Structure
         char name[32], rollNo[32];
         char class[16], section[16];
         unsigned long Id;
 }data_type;

int noOfUsersList=0, usersListCount=0;                   // Global variables 
Run Code Online (Sandbox Code Playgroud)

use*_*421 5

我已经很多年没有这样做了,但是当我同时为 Unix、MS.DOS、OS/2、NetWare 和 Windows 进行大量开发时,我开发了这种做法:

  1. 语言#includes
  2. 操作系统#includes
  3. #includes 来自其他子系统,例如 X11。
  4. 我自己的应用程序#includes。
  5. 我自己的本地 #defines 这个源文件。
  6. 我自己对此文件的前向声明。

也许您可以颠倒(1)和(2),但我发现这个顺序在相当多的编译器和操作系统中效果最好。