TI中文支持网
TI专业的中文技术问题搜集分享网站

在CCS5中关于全局变量的类型声明问题

我看一些资料说定义全局变量可以声明为near或far型,near为寄存器相对寻址,far为寄存器间接寻址。但我在编程时发现可以使用far类型修饰符,但用near的话(near Uint32 tmp = 0;)软件不能识别关键字,说语法错误,请问是怎么回事?是如果不特别声明全局变量是far类型的都默认为near么?   

Shine:

你好,

具体报什么错? 编译器版本号是多少?

Hao Wang5:

回复 Shine:

编译器版本号怎么查?我后来发现好像不是错误,不是error和warning。near下面被划了个黄色波浪线,然后在左边有个问号,说Syntax error。我加上这个near编译后,发现把这个全局变量放到了.bss段里,去掉的话会放在.far段里。请问这是什么情况,为什么会提示Syntax error

Shine:

回复 Hao Wang5:

build的时候在console框里可以看到编译器的版本号

Shine:

回复 Shine:

syntax error是语法错误, 请问是怎么用near keyword定义的?

Hao Wang5:

回复 Shine:

Shine:

回复 Hao Wang5:

near没有显示成粗体, 应该是编译器不认near这个关键字, 这可能是编译器的bug. 

你可以去掉near关键字, 默认情况下是near模式.

Hao Wang5:

回复 Shine:

我去掉near试过,如果不用near的话编译后这些变量会被放到.far段内。我现在用near会被放到.bss段内。这是为什么?

Shine:

回复 Hao Wang5:

看一下有没有用–strict_ansi这个编译选项? 如果用的话, 试试改用non-strict_ansi

Hao Wang5:

回复 Shine:

请问怎么查看编译选项?

Shine:

回复 Hao Wang5:

在build configuration里有个language mode选项可以选择

赞(0)
未经允许不得转载:TI中文支持网 » 在CCS5中关于全局变量的类型声明问题
分享到: 更多 (0)