Chinaunix

标题: 感觉自己代码风格越来越不伦不类, 纠结... [打印本页]

作者: captivated    时间: 2012-07-03 00:55
标题: 感觉自己代码风格越来越不伦不类, 纠结...

    RT.

    1. 最近写指针类型时, 养成另类风格, 总爱把"*"靠着类型写, 而不是靠着变量.
       我最近习惯的写法总是:
  1. void swap(int* v1, int* v2);
复制代码
大多数C程序员都更习惯下面这种风格(我以前也是习惯这种风格. 不知道哪天哪跟筋不对, 就用了上面哪种, 然后就开始习惯, 然后不那么写的时候总觉得有点儿不对劲... 到底要不要改回传统风格呢 ...):
  1. void swap(int *v1, int *v2);
复制代码
尤其是函数返回指针类型的时候...
  1. dlist* list_create(int size, pf_destroy_t dstr);
复制代码
把"*"号靠着类型总给我一种虚无的安全感(函数返回指针类型...), 而
  1. dlist *list_create(int size, pf_destroy_t dstr);
复制代码
却给我一种... 嗯,... 说不上来的感觉.


    2. Linux kernel代码的风格一致性, C程序员的固执, 绝对是变态级的. 当然他们的技术也是变态级的... 基本上, kernel中找不到一个以大写字母开头的类型定义(typedef struct _typeStruct {...} TypeStruct;这种), 他们所有的, 变量类型, 函数类型, 变量, 函数... 全部小写 -- 偶尔的宏例外. Linux的风格是单词单词之间用'_'连接, -- 基本上, 也找不到单词单词之间以大写字母标识的情况. 简而言之,
       linux风格:
  1. void apply_func(...);
复制代码
某种别的风格:
  1. void applyFunc(...);
复制代码
某段时间中过一阵子C++毒(现在差不多毒全消了...关于C++稍微麻烦点儿的东西我都忘光了罢..., 不过有点余毒尚在), C++的命名习惯给了我一些影响, 类名首字母大写, 方法, 字段以小写字母开头, 而且C++(很多应用层代码)多数时候使用的风格是单词单词之间以大写字母标识.
       所以现在写C代码的时候, 习惯了这样子:

  1.        typedef struct _darr {
  2.            void* data;
  3.            int   size;
  4.            int   length;
  5.            pf_destroy_t dstr;
  6.        } Darr;
  7.        ...
  8.        int darr_insert(Darr* thiz, int index, void* data);
复制代码
简单地说, 类型用首字母大写. 全局函数还是用linux风格. 而结构体里面的函数指针却喜欢使用字母字母间以大写字母标识的情况(不管什么字段, 首字母从来都是小写. 个人认为, 要是有谁把局部变量, 或者非宏的函数用首字母大写[呃,这个中枪的不少吧...], 简直就TMD是犯罪...)
---------------------------------------------------------------------------------------------------------

    总之... 不伦不类, 绝对另类... 自己写点儿不伦不类的小东西还好了, 自己看起来还觉得挺爽, 不过每次看到linux kernel代码就觉得, 艹...
    类型首字母大写这种习惯真的不想改..., 函数指针换成'func_xxx'还无所谓(艹, 有时候C++那些个方法命名真的超级长, 用'_'会有点儿不对劲的感觉了), 好吧, "*"靠类型也忍痛改了算了?...

----------------------------------------------------------------------------------------------------------

作者: pmerofc    时间: 2012-07-03 06:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: nizvoo    时间: 2012-07-03 08:17
typedef int* int_ptr;

怎么都行啊。
作者: fender0107401    时间: 2012-07-03 08:42
我非常不喜欢大写字母。
作者: hellioncu    时间: 2012-07-03 09:23
int * v1,两边都不靠,中庸之道
作者: wwwsq    时间: 2012-07-03 09:40
captivated 发表于 2012-07-03 00:55
RT.

    1. 最近写指针类型时, 养成另类风格, 总爱把"*"靠着类型写, 而不是靠着变量.



*靠着类型好。逻辑清晰。

当初有人说*要靠着变量,那是为了一行里面声明多个变量。这是个很不靠谱的理由,因为一行里面通常不应该声明多个变量。


作者: cdtits    时间: 2012-07-03 09:41
只要在一个项目代码中所有风格保持一致就好

当然用的最多的还是 K&R 风格啦,也看得最顺眼
作者: wgm001    时间: 2012-07-03 10:48
本帖最后由 wgm001 于 2012-07-03 10:48 编辑

喜欢内核风格的代码.
我写C++也不会用大写的, 接近boost风格.
国内多数是MFC程序员, 喜欢用匈牙利命名法, 大小写混用, 着实很垃圾...

作者: logicBaby    时间: 2012-07-03 12:31

ACEDevPollReactor
ACE_Dev_Poll_Reactor

应该大多数人一眼就能看出下面的更容易辨识、易读。。。


作者: 留痕之雁    时间: 2012-07-03 12:48
*靠近类型,一行一个声明;
变量名函数名等,全使用小写字母+“_”;
编程时让人容易看懂,在键盘上容易敲打,时间都很宝贵。

作者: huxk    时间: 2012-07-03 12:58

有强迫症了
作者: folklore    时间: 2012-07-03 13:16
lzv5,871b

  1. int *p;
复制代码
seems better~~


作者: captivated    时间: 2012-07-03 20:52
回复 5# hellioncu


    哈哈 这种最丑了 别告诉我你是这种风格哦
作者: captivated    时间: 2012-07-03 20:53
回复 3# nizvoo


    乔帮主好.
作者: captivated    时间: 2012-07-03 20:55
回复 4# fender0107401


    固执的C程序猿 说的就是你吧
作者: captivated    时间: 2012-07-03 20:56
回复 12# folklore


    好吧 那我改回传统风格...
作者: __BlueGuy__    时间: 2012-07-04 17:11
大叔, 这种贴你也好意思发, 你是不是仗着自己技术牛B, 就可以随意卖弄啊 ,!
作者: lifcu3    时间: 2012-07-04 19:54
我也觉得函数返回类型如果是指针的话靠近类型比较好看
作者: captivated    时间: 2012-07-04 21:51
回复 17# __BlueGuy__


    技术那啥的真不敢, CUer干翻我太easy了. 这帖好歹也算是"技术问题"嘛...


作者: __BlueGuy__    时间: 2012-07-04 21:55
回复 19# captivated

风格最烂的代码是 MFC 和 WIN32,完全没有按照 c/c++标准写代码,狗屎.
调用这两个库的代码必然也是狗屎.

   
作者: __BlueGuy__    时间: 2012-07-04 22:02
回复 19# captivated

JB 技术问题,这种问题属于很虚无的玄学,在外面前装B还行,"我代码好规范哦 ,!"
   
作者: captivated    时间: 2012-07-04 22:03
回复 20# __BlueGuy__


    马上表示庆幸那些玩意我只是略懂, 基本上只在linux环境中工作...{:3_189:}



作者: __BlueGuy__    时间: 2012-07-04 22:12
本帖最后由 __BlueGuy__ 于 2012-07-04 22:12 编辑
captivated 发表于 2012-07-04 22:03
回复 20# __BlueGuy__

你现在才开始纠结最微不足道的问题:规范
马上你就要纠结 语言(c/c++)、思想(面向对象/面向过程)、派别(linux/windows)、设计模式(singleton/factory)...

唉,我都替你后半生感到忧郁 ,!
作者: shell_albert    时间: 2012-07-04 22:19
大小写混写,会很浪费时间的,输入大写的时候还要多加一个Shift+Key,麻烦。
作者: shang2010    时间: 2012-07-05 12:36
要牛起,要让别人跟着你的思路走
作者: CMAX    时间: 2012-07-05 16:24
回复 24# shell_albert
纯过路吐槽:想知道你的“_”怎么可以不用Key+Shift打出来?


   
作者: tansijie    时间: 2012-07-05 21:14
我情况和你差不多,也越来不伦不类的, 我的情况主要是换了一家单位,2家都有自己的规范,弄得我自己都乱了,另外在unix, windows 都写过,把我自己弄的都不知道用什么风格的了。
作者: pitonas    时间: 2012-07-06 09:46
总觉得有点儿不对劲...
作者: __BlueGuy__    时间: 2012-07-06 12:50
本帖最后由 __BlueGuy__ 于 2012-07-06 12:54 编辑
huxk 发表于 2012-07-03 12:58
有强迫症了

装B装的太多了,现在有犯罪感了
可惜,已经病入膏肓,无药可救了,...
作者: captivated    时间: 2012-07-06 19:48
回复 29# __BlueGuy__


        犯罪感你妹. 就算zhuangbility, 我也能zhuangbility到有模有样, 叔叔敢对自己每一次zhuangbility负责任.
        要我宣称一下欢迎广大CUer对我哪一次zhuangbility进行检验不?

        最近我已退出开发生涯, 要开始为人师表了. 某种程度上说仍然是码工, 不过性质已经变了.

        以后上CU可能是马甲上来, 也可能还是这个号上来. 不管是哪个, 叔叔敢宣称: 我对自己的水准足够自信, 我也敢对自己的学生的水准负责任.



作者: captivated    时间: 2012-07-06 19:51
回复 28# pitonas


    必须的. 姚晨那嘴很性感吗?


作者: __BlueGuy__    时间: 2012-07-06 21:26
captivated 发表于 2012-07-06 19:48
回复 29# __BlueGuy__

你先把规范问题解决了,然后再为人师表可以吗?
足够自信的人为什么写个指针还叽叽歪歪的呢 ,?
作者: __BlueGuy__    时间: 2012-07-06 21:32
本帖最后由 __BlueGuy__ 于 2012-07-06 21:35 编辑

作为一个教师要能够接受任何代码风格,




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2