习学发开 发表于 2015-7-30 06:30:27

PIC头文件当中的这两个字符/关键字是什么意思?

请看下面三句:

extern volatile unsigned char         INDF                @ 0x000;
#ifndef _LIB_BUILD
asm("INDF equ 00h");

其中加粗标出的@ 和 asm不知道是怎么回事,有没有大神能解释一下.都没有办法goto definition.

asm料想和汇编有关,但是它不是C语言的关键字之一啊?怎么工作的?

"@" 就更说不通了.

xiaodao35 发表于 2015-7-30 07:53:05

就是定义间接地址寄存器,地址00H

miaoguoqiang 发表于 2015-7-30 09:26:02

asm,内嵌汇编的用法

习学发开 发表于 2015-8-1 06:45:36

那请问“@”的含义?

也是编译器专门认得的吗?

snoopyzz 发表于 2015-8-1 09:12:12

习学发开 发表于 2015-8-1 06:45
那请问“@”的含义?

也是编译器专门认得的吗?

大部分嵌入式编译器都支持@这个符号, 就是 at 的意思, 把一个变量名绑定在某个地址上

gujiamao_love 发表于 2015-8-1 09:37:32

snoopyzz 发表于 2015-8-1 09:12
大部分嵌入式编译器都支持@这个符号, 就是 at 的意思, 把一个变量名绑定在某个地址上 ...

什么样的情况下,才要指定地址??

snoopyzz 发表于 2015-8-1 09:42:11

gujiamao_love 发表于 2015-8-1 09:37
什么样的情况下,才要指定地址??

你都金牌了, 还问这种问题? 不是买来的账号吧...

最常见的情况自然是特殊寄存器/外设寄存器 这种地址固定的变量, 定义时当然要指定地址

laujc 发表于 2015-8-1 09:42:45

gujiamao_love 发表于 2015-8-1 09:37
什么样的情况下,才要指定地址??

正常情况下应该是不需要的,定义端口(IO)特殊功能寄存器时需要这样做。应该 还有其他情况需要这样

gujiamao_love 发表于 2015-8-1 09:43:14

snoopyzz 发表于 2015-8-1 09:42
你都金牌了, 还问这种问题? 不是买来的账号吧...

最常见的情况自然是特殊寄存器/外设寄存器 这种地址 ...

平时灌水比较多...
页: [1]
查看完整版本: PIC头文件当中的这两个字符/关键字是什么意思?