我需要在函数参数中声明一个变量。请建议使用语法?
我有这样的事情:
#include <stdio.h>
int foo (int *a)
{
printf ("%d\n", *a);
}
int main (void)
{
foo (&(int){int a=1});
return 0;
}
GCC失败并收到消息:
$ gcc a.c
a.c: In function 'main':
a.c:10: error: expected expression before '{' token
作为一个选项,我可以使用非命名变量(same question at russian version of Stack Overflow):
foo(&(int) { 1 });
并且它有效,但有趣的是为什么编译器接受{1}
但不接受{int a=1}
答案 0 :(得分:3)
你可以使用复合文字 - 我怀疑你尝试的是什么,你几乎是正确的:
<div id="myTab" role="tablist" class="nav nav-tabs">
<a id="nav-first-tab" data-toggle="tab" href="#nav-first" role="tab" aria-controls="nav-first" aria-expanded="true" class="nav-item nav-link active"><span class="number">1</span></a>
<a id="nav-second-tab" data-toggle="tab" href="#nav-second" role="tab" aria-controls="nav-second" class="nav-item nav-link"><span class="number">2</span></a>
<a id="nav-third-tab" data-toggle="tab" href="#nav-third" role="tab" aria-controls="nav-third" class="nav-item nav-link"><span class="number">3</span></a>
</div>
这绝不是一个“常数”,我不知道你是怎么想到的。
请注意,复合文字只有本地(“自动”)存储持续时间 - 如果调用块超出范围,复合文字也是如此。