LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 815|回复: 6

gcc 的版本

[复制链接]
发表于 2005-5-12 14:15:09 | 显示全部楼层 |阅读模式
刚才翻看k&R的时候,p2-3 有这么一段
在 printf 函数的变元中必须用\n引入换行,如果用程序中的换行来代替\n,如:
     printf("hello, world
");

那么c 编译器将会产生一个错误信息
    printf函数永远不回自动换行

当时我用的是gcc-2.96,经过编译ok,为此我还加了旁注”现代编译器可以“

今天用gcc-3.4编译,产生了错误,不知道在各位的机器上是什么情况
发表于 2005-5-12 19:02:16 | 显示全部楼层
看看 C 里字符串常量的定义吧:
  1. string-literal:
  2.     " s-char-sequence_opt "
  3.     L" s-char-sequence_opt "
  4. s-char-sequence:
  5.     s-char
  6.     s-char-sequence s-char
  7. s-char:
  8.     any member of the source character set except
  9.     the double-quote ", backslash \, or new-line character
  10.     escape-sequence
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-12 19:50:30 | 显示全部楼层
什么意思啊,看不明白,请指教
回复 支持 反对

使用道具 举报

发表于 2005-5-12 19:55:35 | 显示全部楼层
Post by wanglej
什么意思啊,看不明白,请指教


BNF。根据那个产生式字串里是不可以有换行符的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-12 20:34:14 | 显示全部楼层
谢谢
BNF。根据那个产生式字串里是不可以有换行符的。

btw : BNF  是什么意思
回复 支持 反对

使用道具 举报

发表于 2005-5-13 09:56:11 | 显示全部楼层
BNF学过编译原理就知道了。
回复 支持 反对

使用道具 举报

发表于 2005-5-20 14:54:44 | 显示全部楼层
你这样写不是标准的写法。还是尽可能的不用吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表