coding-standard-c

When reviewing or generating C code, follow these rules:

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "coding-standard-c" with this command: npx skills add jdubray/puffin/jdubray-puffin-coding-standard-c

C Coding Standards

When reviewing or generating C code, follow these rules:

File Naming

  • Source files: snake_case with .c extension (e.g., user_service.c , data_parser.c )

  • Header files: snake_case with .h extension (e.g., user_service.h , data_parser.h )

  • Keep names short but descriptive (max ~20 characters)

Header Guards

  • Format: UPPER_SNAKE_CASE with _H suffix

  • 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 p or ptr suffix 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 _t suffix or PascalCase (e.g., user_data_t or UserData )

  • Typedefs: snake_case with _t suffix (e.g., user_id_t , callback_fn_t )

  • Enums: snake_case with _e suffix 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

coding-standard-python

No summary provided by upstream source.

Repository SourceNeeds Review
General

coding-standard-cpp

No summary provided by upstream source.

Repository SourceNeeds Review
General

coding-standard-java

No summary provided by upstream source.

Repository SourceNeeds Review
General

modularity-patterns

No summary provided by upstream source.

Repository SourceNeeds Review