CodeStyleConventions 代码风格约定
英文原文:GENERAL
-------
Use real tabs that equal 4 spaces.
Use typically trailing braces everywhere (if, else, functions, structures, typedefs, class definitions, etc.)
if ( x ) {
}
The else statement starts on the same line as the last closing brace.
if ( x ) {
} else {
}
Pad parenthesized expressions with spaces
if ( x ) {
}
Instead of
if (x) {
}
And
x = ( y * 0.5f );
Instead of
x = (y * 0.5f);
Use precision specification for floating point values unless there is an explicit need for a double.
float f = 0.5f;
Instead of
float f = 0.5;
And
float f = 1.0f;
Instead of
float f = 1.f;
Function names start with an upper case:
void Function( void );
In multi-word function names each word starts with an upper case:
void ThisFunctionDoesSomething( void );
The standard header for functions is:
/*
====================
FunctionName
Description
====================
*/
Variable names start with a lower case character.
float x;
In multi-word variable names the first word starts with a lower case character and each successive word starts with an upper case.
float maxDistanceFromPlane;
Typedef names use the same naming convention as variables, however they always end with "_t".
typedef int fileHandle_t;
Struct names use the same naming convention as variables, however they always end with "_t".
struct renderEntity_t;
Enum names use the same naming convention as variables, however they always end with "_t". The enum constants use all upper case characters. Multiple words are separated with an underscore.
enum contact_t {
CONTACT_NONE,
CONTACT_EDGE,
CONTACT_MODELVERTEX,
CONTACT_TRMVERTEX
};
Names of recursive functions end with "_r"
void WalkBSP_r( int node );
Defined names use all upper case characters. Multiple words are separated with an underscore.
#define SIDE_FRONT 0
Use ‘const’ as much as possible.
Use:
const int *p; // pointer to const int
int * const p; // const pointer to int
const int * const p; // const pointer to const int
Don’t use:
int const *p;
CLASSES
-------
The standard header for a class is:
/*
===============================================================================
Description
===============================================================================
*/
Class names start with "id" and each successive word starts with an upper case.
class idVec3;
Class variables have the same naming convention as variables.
class idVec3 {
float x;
float y;
float z;
}
Class methods have the same naming convention as functions.
class idVec3 {
float Length( void ) const;
}
Indent the names of class variables and class methods to make nice columns. The variable type or method return type is in the first column and the variable name or method name is in the second column.
class idVec3 {
float x;
float y;
float z;
float Length( void ) const;
const float * ToFloatPtr( void ) const;
}
The * of the pointer is in the first column because it improves readability when considered part of the type.
Ording of class variables and methods should be as follows:
1. list of friend classes
2. public variables
3. public methods
4. protected variables
5. protected methods
6. private variables
7. private methods
This allows the public inte易做图ce to be easily found at the beginning of the class.
Always make class methods ‘const’ when they do not modify any class variables.
Avoid use of ‘const_cast’. When object is needed to be modified, but only const versions are accessible, create a function that clearly gives an editable version of the object. This keeps the control of the ‘const-ness’ in the hands of the object and not the user.
Return ‘const’ objects unless the general usage of
补充:软件开发 , C++ ,
- 更多C/C++疑问解答:
- 关于c++的cout输出的问题。
- 在学校里学过C和C++,不过学的很一般,现在自学C#,会不会很难?
- 全国计算机二级C语言笔试题
- 已知某树有2个2度结点,3个3度结点,4个4度结点,问有几个叶子结点?
- c++数据结构内部排序问题,整数排序
- 2012九月计算机二级C语言全国题库,,急求急求
- 如果assert只有一个字符串作为参数,是什么意思呢?
- C语言中,哪些运算符具有左结合性,哪些具有右结合性,帮忙总结下,谢谢了!
- 为什么用结构体编写的程序输入是,0输不出来啊~~~
- 将IEEE—754的十六进制转化为十进制浮点类型,用C或C++都行,多谢各位大侠啊,非常感谢!
- 为什么这个程序求不出公式?
- 这个链表倒置的算法请大家分析下
- c语言函数库调用
- C语言unsigned int纠错
- C语言快排求解啊