In this project, standards are loosely inspired by GNOME's naming standards, which can be accessed in this link.
Macros: e.g. ELF_DIE
Constants: e.g. ELF_GRAPH_ORIENTED
Functions*: e.g. say_hello()
Structs: e.g. ElfGraph
Methods: e.g. elfGraph_someActionToExecute()
Overloaded Methods: e.g. elfGraph_someActionToExecute_overloadType()
File Names: e.g. elf_graph.c
* Functions shouldn't be exported to outside of the file.
Never forget the most important rule: follow same standards as the code that surrounds the code you are adding.
It may happen that you will implement the same data structure for different specific types, or using different implementations.
For example, you may implement a generic list for void pointers, and one for integers. Or you may implement a set structure using hashtables and then one using union-find algorithms.
For when these happen, use the following standards:
[namespace][specific_type][specific_implementation][data_structure]
e.g. ElfIntHashSet
You may omit the type or implementation for one of the ambiguous instances. The priority goes to the most generic, which should be void pointer.