coding-standard-c
10
总安装量
6
周安装量
#30316
全站排名
安装命令
npx skills add https://github.com/jdubray/puffin --skill coding-standard-c
Agent 安装分布
claude-code
5
windsurf
3
trae
3
opencode
3
antigravity
3
Skill 文档
C Coding Standards
When reviewing or generating C code, follow these rules:
File Naming
- Source files: snake_case with
.cextension (e.g.,user_service.c,data_parser.c) - Header files: snake_case with
.hextension (e.g.,user_service.h,data_parser.h) - Keep names short but descriptive (max ~20 characters)
Header Guards
- Format: UPPER_SNAKE_CASE with
_Hsuffix - Include path in guard: (e.g.,
PROJECT_MODULE_FILE_H)
#ifndef USER_SERVICE_H
#define USER_SERVICE_H
// content
#endif /* USER_SERVICE_H */
Variable Naming
- Local variables: snake_case (e.g.,
user_count,buffer_size,is_valid) - Global variables: snake_case with
g_prefix (e.g.,g_config,g_instance_count) - Static variables: snake_case with
s_prefix (e.g.,s_initialized,s_cache) - Pointers: Include
porptrsuffix when helpful (e.g.,user_ptr,buffer_p)
Constant/Macro Naming
- Macros: UPPER_SNAKE_CASE (e.g.,
MAX_BUFFER_SIZE,DEFAULT_TIMEOUT) - Enum values: UPPER_SNAKE_CASE (e.g.,
STATUS_OK,ERROR_INVALID_INPUT) - Compile-time constants: UPPER_SNAKE_CASE with
#define
Function Naming
- Functions: snake_case (e.g.,
calculate_total(),parse_input()) - Module prefix: Use module name prefix (e.g.,
user_create(),user_destroy()) - Static functions: snake_case, no prefix needed (internal to file)
- Init/cleanup pairs: Use
_init()and_cleanup()or_create()and_destroy()
Type Naming
- Structs: snake_case with
_tsuffix or PascalCase (e.g.,user_data_torUserData) - Typedefs: snake_case with
_tsuffix (e.g.,user_id_t,callback_fn_t) - Enums: snake_case with
_esuffix for type (e.g.,status_e)
Organization
- Header includes at top (system headers, then project headers)
- Macro definitions after includes
- Type definitions (structs, enums, typedefs)
- Function prototypes
- Global/static variable declarations
- Function implementations