V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
k9982874
V2EX  ›  问与答

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

  •  
  •   k9982874 · 2015-12-29 18:30:44 +08:00 · 1541 次点击
    这是一个创建于 3060 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知道写 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) {}
    ...

    6 条回复    2015-12-29 21:12:13 +08:00
    northisland
        1
    northisland  
       2015-12-29 18:35:00 +08:00
    1 、 2 无所谓,我的理由是源文件太长没什么人从头到尾按顺序看
    Kilerd
        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
        3
    am241  
       2015-12-29 19:02:48 +08:00
    @Kilerd 前面声明好了实现顺序无所谓吧
    Kilerd
        4
    Kilerd  
       2015-12-29 19:05:49 +08:00
    @am241 是啊, 所以说就是要在前面先声明。
    maomaomao001
        5
    maomaomao001  
       2015-12-29 20:48:19 +08:00 via Android
    不是可以不写.cpp 的嘛....就在.h 文件里完成
    ffffwh
        6
    ffffwh  
       2015-12-29 21:12:13 +08:00
    @maomaomao001
    那你在链接的时候可能会碰到重定义问题。

    当然 template 除外。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5631 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 08:33 · PVG 16:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.