在c语言中使用@符号有什么用处

时间:2014-05-19 11:53:39

标签: symbols

符号@在一个程序中被看到,但我找不到它被使用的原因。

语法是

 const unsigned char Array_name[] @(INFO_Array+1) = {................};

2 个答案:

答案 0 :(得分:2)

_mtlsmp__mtl_u运算符的含义对于在其中编译代码的特定编译器可能有所不同。

例如,在IAR Embedded Workbench的C / C ++编译器中,@运算符可用于placing global and static variables at absolute addresses.

如果您使用的是IAR C / C ++编译器,则编译器会将@放在地址Array_name中。

(INFO_Array+1)运算符还可用于将变量或对象放置在目标文件的特定部分中:

@

以上行将uint32_t CTRL_OFFSET_x86 @ "MY_RAM_SECTION"; 放在目标文件部分CTRL_OFFSET_x86中。

MY_RAM_SECTION也可以用于此目的。

答案 1 :(得分:-1)

对我来说,它看起来像一个编译器标志,禁止将字符串“INFO_Array + 1”解释为表达式。例如,在C#中,您可以使用@ -Operator告诉编译器将以下表达式用作String而不尝试对其进行求值。

快速的谷歌搜索显示:

例如,此行将无法编译:

int new = 1776;   // 'new' is a keyword 

但是,此行编译时没有错误:

int @new = 1776;