徐东网站建设公司,wordpress制作评论模板,上海网站seo牛巨微,做网站挣钱经历目录 0. 前言
1. 代码块、函数体上的 { } 的规范
2. 指针和引用中的 * 和 符号的位置
1. Linux 环境下编码风格(gcc)
2. Windows 环境下编码风格(Visual Studio)
3. 简单总结 0. 前言
C/C因为高度的自由性#xff0c;并没有对一些常见的编码风格进行限制#…目录 0. 前言
1. 代码块、函数体上的 { } 的规范
2. 指针和引用中的 * 和 符号的位置
1. Linux 环境下编码风格(gcc)
2. Windows 环境下编码风格(Visual Studio)
3. 简单总结 0. 前言
C/C因为高度的自由性并没有对一些常见的编码风格进行限制所以我们能看到各种各样不同的风格。举几个例子来看比如一下两种常见的情况
1. 代码块、函数体上的 { } 的规范
// 常见写法中的第一种写法
void func()
{// ...
}// 常见写法中的第二种写法
void func() {// ...
}
2. 指针和引用中的 * 和 符号的位置
这里详细的写法我们下面再看。 对于 第一种 代码块、函数体上的 { } 的规范呢Golang语言中强制规定了风格为上述常见写法中的第二种写法。Python语言中呢直接取消了 { } 直接使用缩进来控制。
我认为这样在语法层面上直接控制代码风格是一种解决出现各种各样不同代码风格的代码的很好的一种方式是大大提高了代码的可读性也降低了团队协同开发的成本。
所以在C/C中我想直接引用 林锐博士 的《高质量C/C编程指南》之中的风格就不做过多的讨论了~ 对于林锐博士的这样C/C代码风格呢我个人还是十分喜欢的~~当然没有不喜欢Golang风格的意思哈哈~
这篇文章呢我希望主要来谈论 “指针和引用中的 * 和 符号的位置” 这个问题~ 这一部分我们接着讨论 “指针和引用中的 * 和 符号的位置” 的问题
1. Linux 环境下编码风格(gcc)
我们直接先看代码通过代码来看这一种代码风格~
// 指针的风格
int *func(void)
{int *ptr (int *)malloc(sizeof(int));int* *pptr ptr;return ptr;
}// 引用的风格
int main()
{int a 10;int b a;return 0;
}
在Linux 环境下我们喜欢将这颗 * 的位置更靠近变量ptr来表示这个变量是一个指针变量指向的变量的类型是前面类型 int。
对于二级指针呢依然是后面的那颗 * 的位置靠近变量pptr来表示这个变量是一个指针变量指向的变量的类型是前面的类型 int*。
引用变量也是同样的道理我们将 符号 放在靠经变量的位置来表示这个变量是一个引用变量。 2. Windows 环境下编码风格(Visual Studio)
// 指针的风格
int* func(void)
{int* ptr (int*)malloc(sizeof(int));int** pptr ptr;return ptr;
}// 引用的风格
int main()
{int a 10;int b a;return 0;
}
在Windows环境下我们喜欢将这个 * 的位置放在靠近类型的位置来表明这个变量的类型是int*而在变量类型是有*那么说明这个变量是指针变量指向的类型就是 * 前面的类型。
对于二级指针依然是将这个 * 的位置放在靠近类型的位置来表明这个变量的类型是int**有两颗星说明这是一个二级指针变量指向的类型就是第二颗 * 前面的类型。
对于引用来说呢也是也指针一样的道理 符号的位置更靠近类型来表用这个变量的类型是int。 3. 简单总结
指针和引用的书写风格属于是“仁者见仁智者见智”但是我的认为是Linux环境下的风格比较漂亮易于理解。因为我认为对于指针变量来说我们的逻辑应该是先知道它是一个指针再看它指向什么类型的变量。我看来这样更加的容易理解。
这里呢除了上面说过的 林锐博士 的《高质量C/C编程指南》呢再推荐一些比较权威的C/C的规范供大家参考
谷歌的C/C代码规范
C 风格指南 - 内容目录 — Google 开源项目风格指南
360C/C代码规范
https://github.com/Qihoo360/safe-rules