【问题标题】:What does *int mean? [closed]*int 是什么意思? [关闭]
【发布时间】:2013-05-16 14:42:18
【问题描述】:

我知道指针是什么,但在一些编码练习中我有一个错字,而不是int* 使用*int

我知道这是错误的,但这是否意味着 C 语言中的某些内容(例如语法有效)? 是静态语义吗? 它只是未定义吗?

编译器警告无法解决。

编辑:(相关编译器警告)

void input(*int ,*int );

:10: 错误:“int”之前的预期主表达式 :10: 错误:“int”之前的预期主表达式 :10: 错误:初始化表达式列表被视为复合表达式

【问题讨论】:

  • 请分享编译器警告。
  • 这将取决于上下文。贴出代码。
  • 伙计们!请让达戈斯松懈!像这样的问题是 C 解析智慧的开始。
  • sigh ...有时几乎不值得。
  • @DagothUlen 如果您输入错误并且编译成功,那么您有一个问题。如果你打错了,编译器说“呃,什么,这没有意义?”,这不是一个问题。除了也许“有人可以向我解释这个编译器消息吗?我不明白这个错字 [...] 是如何导致那个消息的 [...]”,这将是一个有效的问题 [可能甚至很有趣,编译器错误可以是神秘的]。

标签: c parsing pointers syntax


【解决方案1】:

不,这是语法错误。它不能是乘法的一部分,因为不能有带有关键字名称的标识符。

使它成为 C 程序的有效部分的唯一方法是

  • 作为字符串文字的一部分
  • 作为多字节字符常量的一部分
  • 作为评论的一部分
  • int 是一个宏扩展为使其有效的其他内容时
  • #ifdef'ed out 代码段内
  • 还有一些我忘记了

【讨论】:

  • 您可以将其作为未使用宏的一部分:#define UNUSED39898439854389 *int
  • @Chris +1 Righto!这很有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多