The SCIP source code has different types of files, distinguished by their naming style. The following list gives an overview of the most important file types and their purpose.
<component>.c,h and should not be included in the public API.SCIP* parameter, but a pointer to the component as first argument and pointers to internal structures like SCIP_SET* or SCIP_STAT*, where necessary.SCIP<component><operation>..., e.g., SCIPvarCreateOriginal() or SCIPvarAddLocks().pub_<component>.h declares the functions of the public API that do not need a SCIP pointer. Often, these are getter-functions. For example, pub_var.h contains public variable API functions.pub_<component>.h follow the same naming style as those in <component>.h and are used by the implementation of the internal API as well.scip_<component>.h declares the functions of the public API that need a SCIP instance (SCIP*), e.g., scip_var.h for public variable manipulation functions. Functions declared in scip_<component>.h are often thin wrappers that call the internal API functions from <component>.h. These functions should follow the naming style SCIP<operation><component>..., e.g., SCIPcreateVarOriginal() or SCIPaddVarLocks().SCIP_EXPORT attribute.type_<component>.h. Type names follow the style SCIP_<COMPONENT>....struct_<component>.h. struct_<component>.h is usually included only by <component>.c and maybe scip_<component>.c. Exceptions are due to manual inlining of functions via macros when compiling for optimized mode.<type>_<name>.c,h, e.g., cons_knapsack.c implements the Knapsack constraint handler plugin and cons_knapsack.h declares its public API functions.<type>_<name>.h.SCIP<operation>...<Name>, e.g., SCIPincludeConshdlrAnd(), SCIPcreateConsAnd(), or SCIPgetNVarsAnd().src/scip/scipdefplugins.c.