前一段时间请教过关于“#pragma”,是关于: #pragma ioport EP0_DR0: 0x050 // Endpoint 0 Data Register 0 BYTE EP0_DR0; 和 #pragma fastcall16 的问题。 今天早晨请教一位师兄,他说,#pragma是十分灵活的一个预处理命令,有共同的命令格式,但不同的片子有不同之处,依厂家来定。而编译器的“帮助”里会这样的解释的。以下就是PSoC Designer4.0 的Help的解释: #pragma ioport LED:0x04; char LED; Defines a variable that occupies a region in IO space (register). This variable can then be used in IO reads and writes. The #pragma ioport must precede a variable declaration defining the variable type used in the pragma. 定义一个占用I/O空间(寄存器)的变量。这个变量可以用于I/O的读操作和写操作。在使用#pragma ioport时,需要对变量进行一个类型定义,为char。 #pragma fastcall16 GetChar Provides an optimized mechanism for argument passing. This pragma is used only for Assembly functions called from C. 提供一个最优的参数(argument)传递的的机制。这个pragma预处理命令只用于c语言调用汇编命令的时候。
|