Created
August 7, 2014 00:34
-
-
Save Endle/d5180e69bbcc1cfebc02 to your computer and use it in GitHub Desktop.
Talk in IRC about code style
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<endle> 你为什么不用 int 呢? | |
<StarBrilliant> 不是表示运算用的整数不要用int | |
<StarBrilliant> 只有用来运算的时候才用int | |
<StarBrilliant> 比如,如果是表示内存中一个东西的大小 | |
<StarBrilliant> 用 size_t | |
<StarBrilliant> 如果是表示时间的秒数用 clock_t | |
<StarBrilliant> 表示字符用 wchar_t | |
<StarBrilliant> 这些都是等价的整数 | |
<StarBrilliant> 但是不是 int | |
<endle> 哦,明白你的意思了 | |
<StarBrilliant> 因为 int 是当前计算机架构运算最方便的整数 | |
<StarBrilliant> int是用来做数学运算的 | |
<endle> 的确是编程的好习惯 | |
<StarBrilliant> 不是度量指针的 | |
<StarBrilliant> 如果真的要把指针转换成整数,用 size_t | |
<StarBrilliant> 还有 | |
<StarBrilliant> 如果表示文件大小 | |
<StarBrilliant> 用 off_t 和 off64_t | |
<StarBrilliant> 也不要用 int | |
<StarBrilliant> 我猜 Sleepwalking 一定也用 int 表示文件大小了吧? | |
<StarBrilliant> long long 不是C标准,而且你也不知道 long long 到底有多long | |
<StarBrilliant> 当年还说long是32位的呢 | |
<StarBrilliant> 现在不是被推翻了? | |
<endle> 都乱掉了 | |
<endle> 我记得有一个表,整理各个编译器在不同平台下对这些变量的解释 | |
<StarBrilliant> 比如FFmpeg的源码就要求不用 long long 或 __int64,如果明确要用64位,用 int64_t。 | |
<StarBrilliant> 所以不要去背那些解释 | |
<StarBrilliant> 去看字面意思 | |
<StarBrilliant> 比如 long 就是不短于 int 的整数 | |
<StarBrilliant> long long 就是不位于long的整数 | |
<endle> 恩,你说的对 | |
<StarBrilliant> 现在只有char是固定1 byte的 | |
<StarBrilliant> 神一样的fall-through https://github.com/Rocaloid/RUCE/blob/master/src/GetPara.c#L44 | |
<titlbot> ⇪标题: RUCE/GetPara.c at master · Rocaloid/RUCE · GitHub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment