|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-10-31 关键字: c 操作符 优先 结合顺序
pdef(t)
{ *(char *)dstk++ = t; } http://fabrice.bellard.free.fr/otcc/otccn.c otcc上的第一个函数的实现。读不懂啊。 dstk和t为int,全局变量. *(char *)dstk++=t 是 “dstk自增1后转换为字符指针,把t赋值给dstk指向的字符” 还是 “dstk转换为字符指针,把t赋值给dstk指向的字符,然后dstk再自增1” 测试是 “dstk转换为字符指针,把t赋值给dstk指向的字符,然后dstk再自增1” 但是++是优于=的。。。困惑 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |
|
时间:2007-10-31
p++ 这个表达式是先返回值再自增的,而“++ 优于 =”是说运算符怎么结合。大学 C 语言要重修了啊,嘿嘿。
|
|
| 返回顶楼 | |
|
时间:2007-11-01
喔。。。原来如此
这不正在修嘛。 想起一个八卦:C++应该叫做++C的。先加速再使用嘛 |
|
| 返回顶楼 | |
|
时间:2007-11-01
我记得我学过的教科书上是说,有时候运算符的优先顺序是有
微小差别的,跟编译器有关。 所以脱离编译器,我也不知道。 这种东西还是要跑过程序才知道。 |
|
| 返回顶楼 | |
|
时间:2007-11-01
dwangel 写道 我记得我学过的教科书上是说,有时候运算符的优先顺序是有 听谁讲的 c的语法明确规定的优先级别 compiler有什么理由差异。
微小差别的,跟编译器有关。 所以脱离编译器,我也不知道。 这种东西还是要跑过程序才知道。 |
|
| 返回顶楼 | |
|
时间:2007-11-01
*(char *)dstk++ = t; 算是一种非常常见的惯用法了。
|
|
| 返回顶楼 | |
|
时间:2007-11-01
......这么写的都该吊起来抽
...我又不是编译器......我是人 |
|
| 返回顶楼 | |
|
时间:2007-11-02
mryufeng 写道 dwangel 写道 我记得我学过的教科书上是说,有时候运算符的优先顺序是有
听谁讲的 c的语法明确规定的优先级别 compiler有什么理由差异。微小差别的,跟编译器有关。 所以脱离编译器,我也不知道。 这种东西还是要跑过程序才知道。 语法定义是明确的,但是还是有没规定到的。 c+++b 这种表达式就有差异,好像BC跟VC编译器就有差别了。 现在只是大家用的C的版本少。 但是拿gcc跟vc比,差异还是很多的。 |
|
| 返回顶楼 | |
|
时间:2007-11-02
天知道写的是什么,应该吊起来抽,抽他们去写汇编
抽玩写代码的再去抽写规范的,然后抽编译器提供商, 再自己整一个。。。 |
|
| 返回顶楼 | |
|
时间:2007-11-02
c+++b在那个编译器都是被解释为c++ +b吧.
ansi c 的这种maximal munch strategy,应该是各个编译器都支持的说. |
|
| 返回顶楼 | |








