c++中形参列表是什么缩写? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
v2byy
V2EX    C

c++中形参列表是什么缩写?

  •  
  •   v2byy 2018-07-09 17:04:20 +08:00 3768 次点击
    这是一个创建于 2703 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查看 msdn,经常看到一些形参的命名,sz, lhs, rhs,请问这些是什么的缩写?

    有什么编码规范可以参考一下?

    13 条回复    2018-07-10 17:28:09 +08:00
    zynlp
        1
    zynlp  
       2018-07-09 17:06:40 +08:00 via iPhone   1
    left hand side
    right ~~
    c++ primer 好像这么写的,记不清了
    tmqhliu
        2
    tmqhliu  
       2018-07-09 17:11:56 +08:00
    搜索“匈牙利命名法”
    geelaw
        3
    geelaw  
       2018-07-09 17:37:23 +08:00 via iPhone   2
    lpsz = long pointer string (zero) 是指 指向空终结字符串的长指针

    现在已经没有远近指针的区别了。
    Athrob
        4
    Athrob  
       2018-07-09 19:01:07 +08:00 via iPhone
    两年没动 c++,一时间竟然想不起形参是何物了。
    Zchary
        5
    Zchary  
       2018-07-09 19:21:08 +08:00
    命名规范可以参考'代码大全 2'
    versee
        6
    versee  
       2018-07-09 20:00:45 +08:00 via Android
    @tmqhliu 这个和匈牙利命名法有什么关系。。
    versee
        7
    versee  
       2018-07-09 20:01:38 +08:00 via Android   1
    left/right hand side
    HHehr0ow
        8
    HHehr0ow  
       2018-07-09 22:49:43 +08:00   2
    楼主所举例的命名一是属于一些早期 C++命名习惯的沿袭、二是属于一些惯用法。

    如 sz,代表 string end with zero,类似的,还有 lpsz, psz, lpcsz 等,分别为 long pointer to string end with zero, pointer to string end with zero, long pointer to const string end with zero 等含义。其中 long pointer 的概念自 Win32 之后便已经淡化,现在 long pointer 与 pointer 在 Win32 API 中基本已无差别。早期 Win16 时代才有所区别。

    如 lhs, rhs,属于惯用法 left hand side 与 right hand side 的缩写,一般代表 operator 左手侧与右手侧的变量。比如 operator+ (T lhs, T rhs),调用时形式可为 a + b,此处 a 即左手侧,b 于右手侧。

    一般应用这种形式的命名法正如 2 楼 @tmqhliu 所指出,叫做匈牙利命名法。指使用几个字符做简短前缀表明变量类型,后跟随其它命名含义的方式。比如常见的 nSize, lpcszFileName, rValue 等。但是现在很多新式 coder 已经不推荐这种命名法。若重构时更改变量类型,需要额外重新命名以保证一致,给维护带来负担。

    建议变量名的命名应跟随当前项目的标准,与其他 coder 保持一致。不要给后来的阅读者带来困扰,命名含义表达清晰即可。
    versee
        9
    versee  
       2018-07-10 00:13:51 +08:00 via Android
    @tmqhliu 好吧 真的有关系 我错了
    v2byy
        10
    v2byy  
    OP
       2018-07-10 08:12:50 +08:00
    @HHehr0ow 厉害了,多谢
    zhuangzhuang1988
        11
    zhuangzhuang1988  
       2018-07-10 10:00:01 +08:00
    lhs, rhs 记得来自于 <Effective C++>
    mingl0280
        12
    mingl0280  
       2018-07-10 15:00:10 +08:00
    SZ = String ending with Zero
    STR = STRing
    L = Long
    W/T = Wide
    C = Const
    P = Pointer
    I = Interface
    n/i = int32
    n = int16
    b = bool
    c/cnt = count
    ch/c = char
    w = word
    r = real
    u = unsigned
    f = float
    b/by = byte
    h = handle
    f/fn = function
    d = double
    dw = double word
    lhs/rhs = left-hand-side/right-hand-side
    其它的在 msdn 上找通用命名约定那部分能找出来。
    v2byy
        13
    v2byy  
    OP
       2018-07-10 17:28:09 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1082 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 140ms UTC 23:12 PVG 07:12 LAX 15:12 JFK 18:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86