相关疑难解决方法(0)

$变量名?

我偶然发现了一些像这样的(c ++)代码:

int $T$S;
Run Code Online (Sandbox Code Playgroud)

首先,我认为它是某种PHP代码或者错误地粘贴在那里但它编译并运行得很好(在MSVC 2008上).

什么类型的字符对C++中的变量有效,是否还有其他奇怪的字符可以使用?

c++ variables identifier variable-names visual-c++

26
推荐指数
2
解决办法
1万
查看次数

在c编程中使用@符号?

我正在使用一些最初为IAR编写的代码,并使用GCC编译器将其转换为编译.

但是由于我不理解语法或正在发生什么,因此我遇到了一条特定的行.

__root const uint32_t part_number @ ".part_number" = 701052;
Run Code Online (Sandbox Code Playgroud)

我发现的__root是这样的,即使没有任何实际引用它的变量也包含在最终代码中.const意味着它不会改变并保存在ROM而不是RAM中.

这是我不遵循的@".part_number"部分.我得到的具体错误是"stray'@'in program".

我知道@不是标准C的一部分,但我没有任何运气找到解释我所看到的语法的任何东西.

如果有人能够解释它,我会非常感激.

谢谢

c

9
推荐指数
1
解决办法
110
查看次数

什么是绝对符号以及如何在 C 中定义它?

在手册页中nm。它说

\n\n
\n

\xe2\x80\x9cA\xe2\x80\x9d 符号的值是绝对的,不会因进一步链接而改变。

\n
\n\n

但是,我不知道这意味着什么。如何在 C 中定义一个变量或其他东西以使其值绝对?

\n\n

test.c如果我在其文件范围内声明一个变量

\n\n
int a;\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在 的输出中nm,a 的条目在我的机器上将如下

\n\n
int a;\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我想知道我该怎么做才能使nm变量的输出 \xe2\x80\x9cA\xe2\x80\x9d 。而且我不知道 \xe2\x80\x9cabsolute\xe2\x80\x9d 是什么意思。

\n

c linker relocation ld linker-scripts

5
推荐指数
1
解决办法
3592
查看次数