论坛首页 综合技术版 C

*(char *)dstk++=t dstk先赋值还是先自加1???

浏览 1437 次
精华帖 (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”

但是++是优于=的。。。困惑
  • st2m.zip (309 Bytes)
  • 描述:
  • 下载次数: 0
   
时间:2007-10-31
p++ 这个表达式是先返回值再自增的,而“++ 优于 =”是说运算符怎么结合。大学 C 语言要重修了啊,嘿嘿。
   
0 请登录后投票
时间:2007-11-01
喔。。。原来如此

这不正在修嘛。

想起一个八卦:C++应该叫做++C的。先加速再使用嘛
   
0 请登录后投票
时间:2007-11-01
我记得我学过的教科书上是说,有时候运算符的优先顺序是有
微小差别的,跟编译器有关。
所以脱离编译器,我也不知道。
这种东西还是要跑过程序才知道。
   
0 请登录后投票
时间:2007-11-01
dwangel 写道
我记得我学过的教科书上是说,有时候运算符的优先顺序是有
微小差别的,跟编译器有关。
所以脱离编译器,我也不知道。
这种东西还是要跑过程序才知道。
听谁讲的 c的语法明确规定的优先级别 compiler有什么理由差异。
   
0 请登录后投票
时间:2007-11-01
*(char *)dstk++ = t; 算是一种非常常见的惯用法了。
   
0 请登录后投票
时间:2007-11-01
......这么写的都该吊起来抽

...我又不是编译器......我是人
   
0 请登录后投票
时间:2007-11-02
mryufeng 写道
dwangel 写道
我记得我学过的教科书上是说,有时候运算符的优先顺序是有
微小差别的,跟编译器有关。
所以脱离编译器,我也不知道。
这种东西还是要跑过程序才知道。
听谁讲的 c的语法明确规定的优先级别 compiler有什么理由差异。

语法定义是明确的,但是还是有没规定到的。
c+++b
这种表达式就有差异,好像BC跟VC编译器就有差别了。
现在只是大家用的C的版本少。
但是拿gcc跟vc比,差异还是很多的。
   
0 请登录后投票
时间:2007-11-02
天知道写的是什么,应该吊起来抽,抽他们去写汇编

抽玩写代码的再去抽写规范的,然后抽编译器提供商,

再自己整一个。。。
   
0 请登录后投票
时间:2007-11-02
c+++b在那个编译器都是被解释为c++ +b吧.

ansi c 的这种maximal munch strategy,应该是各个编译器都支持的说.
   
0 请登录后投票
论坛首页 综合技术版 C

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)