coding-style相关内容

如何优雅地实施一系列采用纯C不同类型版本的功能呢?

我想写几个功能仅在类型的参数不同。我知道C ++有模板来处理好这个问题(不是很顺利尚未虽然,一些编译器都支持导出关键字,这关键字查询的效率)。对于简单的例子,我想: 模板< typename的T> 不要再增加(T一,T二){ 返回A + B; } 然而,在纯C(有时我不得不选择纯C,因为有些平台没有C ++编译器),也必须对不同的版本不同的功能名称,双addDouble( ..
发布时间:2016-08-18 22:29:15 C/C++

有条件的初始化是如何处理的,是它一个很好的做法?

我尝试几种可能的做法之间作出选择。比方说,我的功能的数,如果()块,对数据的工作,这是唯一的它们。 我应该声明和初始化本地(为块)的块中的数据?这是否有运行时性能成本(由于在堆栈中分配运行时)? 或者我应该声明和/或初始化在函数入口的所有变量,所以这是在一个做的,可能是速度更快,操作块? 或者我应该单独在不同的功能,如果()块,即使他们是一对夫妇只排长队的,只有在程序中使用吗? ..
发布时间:2016-08-18 14:51:27 C/C++

返回(一)与返回

我已经从C和C ++ code我一直在寻找见过。 有什么区别? 解决方案 没有区别的。 官方的语法是返回的东西; 或返回; ,当然这是一个关键字,而不是一个函数 由于这个原因,你不应该把它读作收益率(A); 但收益率(A); 我认为区别很微妙,但明确,括号将不适用于恢复,但到。 ((((一))))相同(一)这是一样的 A 。 您也可以编写类似... INT X =(((10 ..
发布时间:2016-08-18 14:47:56 C/C++开发

是单行if语句,或者如果没有括号不好的做法陈述?

如果(条件){/ *做某事* /} 其他{/ *做某事* /}如果(条件) /* 做一点事 */ 其他 /* 做一点事 */ 我被告知,第一个例子是不是一个好主意。我不知道这是否真的是这种情况下(或第二个其一);它不能缩短量类型?还是因为它只是使一个烂摊子? 解决方案 最好的做法是写code,其他人可以读取和更新容易。 您第一种形式是值得怀疑的,因为它不符合大多数PHP开发 ..
发布时间:2016-08-18 14:22:14 PHP

GOTO认为无害

的转到语句已在几个SO讨论连篇累牍检查(见的这个和的的),我当然不希望重振那些激烈的辩论。 相反,我想集中精力的S​​ 转到单一的用例,并讨论其价值和可能的替代方案。 考虑以下code片段,这是常见的(至少我自己)的FSM: 而(州= next_state()){ 开关(州){ 例中foo: / ..
发布时间:2016-08-18 14:13:29 C/C++

编码风格检查对C

我正在为有严格的编码风格的指导方针,但没有自动工具来验证他们的公司。我环顾四周,唯一的工具,我能找到的都是像皮棉,似乎旨在验证code做什么工具,以及preventing的错误,而不是在确保编码风格是正确的。 我们应该使用什么工具,如果在所有? 请注意:我在寻找的东西C code,虽然一些C ++的工作将是一件好事,以及。 解决方案 传统的美化缩进,可用每个Unix机器上。一些找到的版 ..
发布时间:2016-08-18 13:54:57 C/C++

您的preferred C / C ++的大项目头部政策?

这是一个大的C / C ++项目时,你有没有对一些具体规则的的#include 的源文件或头文件中? 例如,我们可以想像遵循这两个过度规则: 的的#include 的在被禁止的的.h 的文件;它是由每个 .C 的文件包含所有需要的头文件 每个的.h 的文件应该包括所有的依赖关系,即它应该能够单独编译没有任何错误。 我想有取舍之间的任何项目,但什么是你的吗?你有没有更具体的规则?或认 ..
发布时间:2016-08-18 13:54:03 C/C++开发

使用真实和用C假

至于我可以看到有3种方式使用在C布尔值 与布尔类型,然后从使用真假 使用preprocessor定义的#define FALSE 0 ...的#define TRUE!(FALSE) 只需直接使用常量,即1和0 是我错过了还有其他的方法?什么是不同方法的利弊? 我想最快的将是3号,2更容易阅读依然(虽然按位求反将略有增加开销),1是最可读不是所有的编译器兼容。 解决方案 ..
发布时间:2016-08-18 13:52:46 C/C++

极品prefixing与函数(无效)

最近,我跨不寻常的编码规范,其中要求一个函数返回“作废”是(无效)pfixed $ P $来了。 例如。 (无效)MyFunction的(); 时从函数调用就像任何不同: MyFunction的(); 有它有什么优势或者是另一个不必要的,但有编码某种约定? 解决方案 如printf某些功能()返回几乎从未在现实code使用的值(在printf的情况下,打印的字符数) 。然而,一些工 ..
发布时间:2016-08-18 13:36:23 C/C++

你preFER"若(VAR)QUOT;或者QUOT;若(!变种= 0)&QUOT ;?

我已经在C-衍生语言编程现在的几十年。某处沿线,我决定,我不再想写: 如果(VAR)//用C 如果($ VAR)在Perl# 在我的意思是:如果(VAR!= 0) 如果(定义$ var和$ VAR NE'') 我觉得它的一部分是,我有一个强类型的大脑和在我的脑海,“如果”需要一个boolean前pression。 或者,也许是因为我使用Perl那么多,真理和谬误在Perl是这样的雷场。 ..
发布时间:2016-08-18 13:16:25 C/C++

如何指针的功能在C有用结构成员?

我是不是新的C语言编程。但我不明白什么是有用保持函数指针为C.如结构成员 //拳方式:为了保持指针结构发挥作用 结构NEWTYPE { int类型的; 焦炭℃; INT(* F)(结构NEWTYPE *); }无功; INT乐趣(结构NEWTYPE * V){ 返回V->一种; } // ..
发布时间:2016-08-18 13:14:37 C/C++

与的#ifndef的#define #ENDIF C头文件的最佳实践

什么而言就以下“模式”的最佳做法? 的#ifndef BLAFOO_H #定义BLAFOO_H / * ... * ... * / #ENDIF / * * BLAFOO_H / 我应该如何命名在的#define 指令的头?我见过的所有从该 BLAFOO_H 到 __ BLAFOO_H 到 _BLAFOO_H _ 等 解决方案 将它们命名为 BLAFOO_H (personnally ..
发布时间:2016-08-18 13:12:47 C/C++

旧风格的C函数的声明

下面是delcared一个简单的功能,使用旧风格的语法定义的: 的#include<&stdio.h中GT; 空虚 错误(消息,A1,A2,A3,A4,A5,A6,A7) 字符*消息; 字符* A1,A2 *,* A3,A4 *,* A5,A6 *,* A7; { fprintf中(stderr中,消息,A1,A2,A3,A4,A5,A6,A7); } ..
发布时间:2016-08-18 12:55:43 C/C++

是做,而假循环共同之处?

前阵子我换我来处理空调风格错误的方式。 我发现了很多我的code的是这样的: INT错误code = 0;错误code = DoSomething的(); 如果(错误code == 0) { 错误code = doSomethingElse(); }...如果(错误code == 0) { 错误code = doSomethingElseNew(); } 但最近我一直在写这样 ..
发布时间:2016-08-17 23:21:02 C/C++开发

按字节读取的存储器:"符号字符*" VS"无符号字符*"

一个经常需要从内存在同一时间在这个天真的的memcpy读一个字节,像()实施 无效*的memcpy(void *的DEST,常量无效* SRC,为size_t N) { 字符*从=(字符*)SRC; 字符*为=(字符*)DEST; 而(N--)*为++ = *从++; 返回DEST; } 不过,我有时看到有人明确地使用无符号字符* ,而不是仅仅的char * 。 ..
发布时间:2016-08-17 23:16:56 C/C++开发

#IFDEF VS#如果 - 这是更好/更安全的为启用/禁用code的特定部分的编译的方法?

这可能是风格问题,但有一个位在我们的开发团队一个鸿沟,我想知道,如果其他人有对此事的任何想法... 基本上,我们有我们的正常发育过程中关闭一些调试打印语句。我个人preFER做到以下几点: // ---- ---- SomeSourceFile.cpp的#define DEBUG_ENABLED(0)...SomeFunction() { INT someVariable = 5;# ..
发布时间:2016-08-17 23:02:45 C/C++开发