c/c++的小伙伴进来,有个问题

2015-12-29 18:30:44 +08:00
 k9982874

不知道写 c/c++的小伙伴平时写函数的时候,是按照头文件里函数声明的顺序在 C/CPP 文件中实现,还是看心情随便找地方一写完事。

怕说不清楚,举个栗子:
foo.h
void a(void);
void b(void);
void c(void);
void d(void);
void e(void);
void f(void);
...

实现 1 :按头文件顺序实现
void a(void) {}
void b(void) {}
void c(void) {}
void d(void) {}
void e(void) {}
void f(void) {}
...

实现 2 :随意找个地方写
void a(void) {}
void c(void) {}
void e(void) {}
void f(void) {}
void d(void) {}
void b(void) {}
...

1543 次点击
所在节点    问与答
6 条回复
northisland
2015-12-29 18:35:00 +08:00
1 、 2 无所谓,我的理由是源文件太长没什么人从头到尾按顺序看
Kilerd
2015-12-29 18:56:23 +08:00
一般来说

```c
void a(void);
void b(void);
void c(void);
void d(void);
void e(void);
void f(void);

void a(void) {}
void b(void) {}
void c(void) {}
void d(void) {}
void e(void) {}
void f(void) {}

```

这样写的好处在于, 如果 a 函数需要调用 f 函数,不需要去修改函数定义位置。

BTW , 在小括号后面加个空格不是一个好习惯 应该 void a(void){}
am241
2015-12-29 19:02:48 +08:00
@Kilerd 前面声明好了实现顺序无所谓吧
Kilerd
2015-12-29 19:05:49 +08:00
@am241 是啊, 所以说就是要在前面先声明。
maomaomao001
2015-12-29 20:48:19 +08:00
不是可以不写.cpp 的嘛....就在.h 文件里完成
ffffwh
2015-12-29 21:12:13 +08:00
@maomaomao001
那你在链接的时候可能会碰到重定义问题。

当然 template 除外。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/246999

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX