“char code reserve [3] _at_ 0x23;”是什么语法规则?
[复制链接]
安装了uVision4之后,打开有个示例程序:
-
/*------------------------------------------------------------------------------ HELLO.C
Copyright 1995-2005 Keil Software, Inc. ------------------------------------------------------------------------------*/
#include <REG52.H> /* special function register declarations */ /* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */
#ifdef MONITOR51 /* Debugging with Monitor-51 needs */ char code reserve [3] _at_ 0x23; /* space for serial interrupt if */ #endif /* Stop Exection with Serial Intr. */ /* is enabled */
/*------------------------------------------------ The main C function. Program execution starts here after stack initialization. ------------------------------------------------*/ void main (void) {
/*------------------------------------------------ Setup the serial port for 1200 baud at 16MHz. ------------------------------------------------*/ #ifndef MONITOR51 SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */ TR1 = 1; /* TR1: timer 1 run */ TI = 1; /* TI: set TI to send first char of UART */ #endif
/*------------------------------------------------ Note that an embedded program never exits (because there is no operating system to return to). It must loop and execute forever. ------------------------------------------------*/ while (1) { P1 ^= 0x01; /* Toggle P1.0 each time we print */ printf ("Hello World\n"); /* Print "Hello World" */ } }
复制代码
请问:
(1)语句“char code reserve [3] _at_ 0x23; ”初看不符合C语言的语法规则,难道这是51单片机C语言特有的?
(2)没搞明白“P1 ^= 0x01;”起什么作用,我把它注释掉之后,照样运行正常。
谢谢!
|