ÊéÖÐÓм¸¸öÎÊÌâÓеãÄ£ºý¡£¼Ç¼һÏ¡£
Answer to Exercise 1-7
Write a program to print the value of EOF .
#include <stdio.h>
int main(void)
{
printf("The value of EOF is %d\n\n", EOF);
return 0;
}
EOFÔÚstdio.hÖе͍ÒåΪ#define EOF (-1)
ÆäÖУ¨£©±»ºöÂÔ£¬Ö»Ê¹ÓÃ-1¡£ ......
ÔÚcÓïÑÔÖУ¬hello world³ÌÐòµÄ±àÂëÆäʵδ±Ø¾ÍÖ»ÓÐÄÇÒ»ÖÖÊéд¸ñʽ£¬ÓÐЩ¸ñʽ¿´ÆðÀ´ÓеãÂÒÂ룬ȴÒÀÈ»ÓÐ×ÅÄÜÕý³£±àÒ룬ÔËÐеÄÁ¼ºÃÆ·ÐÔ£¬ÕæÊÇÄÑÄÜ¿É¹ó£¬ÆäÖеÄÃØÃÜ£¬¿´Ò»¿´cÓïÑÔÖÐ×Ö·û¼¯ºÍ×Ö·û±àÂëµÄÃèÊö°É¡£
??= include<stdio.h>
int main( int argc, char* argv??(??))
<%
if( argc > 1 )
printf( "Hello, %s!??/a??/n", argv<:1:>);
return 0;
%>
cÓïÑÔÖУ¬Ô´×Ö·û¼¯ºÍÖ´ÐÐ×Ö·û¼¯¶¼Óлù±¾×Ö·û¼¯ºÍÀ©Õ¹×Ö·û£¬ÎªÁËÊdzÌÐò¶¼ÄÜ˳Àû±àÒëÔËÐУ¬×îºÃ¶¼Óûù±¾×Ö·û¼¯ÖеÄ×Ö·û¡£ISO/IEC 646±ê×¼ÔÊÐí°Ñ±¾¹ú¶îÍâÐèÒªµÄ×Ö·û°²Åŵ½ÔÏÈASCIIÖÐ"[", "]", "{", "}" µÈÕ¼¾ÝµÄλÖá£ÎªÁ˽«ÕâЩ·Ç±ê×¼ÄÚÈÝÓиüºÃµÄ¿É¶ÁÐÔ£¬c±ê׼ίԱ»áÓÐÓÓÈýÁª·ûÐòÁД ±íʾȱÉÙµÄ×Ö·û¡£
ÈýÁª·ûÐòÁÐÈçÏ£º
??= (#) ??) (]) ??( ([)
??! (|)   ......
ÔÚcÓïÑÔÖУ¬hello world³ÌÐòµÄ±àÂëÆäʵδ±Ø¾ÍÖ»ÓÐÄÇÒ»ÖÖÊéд¸ñʽ£¬ÓÐЩ¸ñʽ¿´ÆðÀ´ÓеãÂÒÂ룬ȴÒÀÈ»ÓÐ×ÅÄÜÕý³£±àÒ룬ÔËÐеÄÁ¼ºÃÆ·ÐÔ£¬ÕæÊÇÄÑÄÜ¿É¹ó£¬ÆäÖеÄÃØÃÜ£¬¿´Ò»¿´cÓïÑÔÖÐ×Ö·û¼¯ºÍ×Ö·û±àÂëµÄÃèÊö°É¡£
??= include<stdio.h>
int main( int argc, char* argv??(??))
<%
if( argc > 1 )
printf( "Hello, %s!??/a??/n", argv<:1:>);
return 0;
%>
cÓïÑÔÖУ¬Ô´×Ö·û¼¯ºÍÖ´ÐÐ×Ö·û¼¯¶¼Óлù±¾×Ö·û¼¯ºÍÀ©Õ¹×Ö·û£¬ÎªÁËÊdzÌÐò¶¼ÄÜ˳Àû±àÒëÔËÐУ¬×îºÃ¶¼Óûù±¾×Ö·û¼¯ÖеÄ×Ö·û¡£ISO/IEC 646±ê×¼ÔÊÐí°Ñ±¾¹ú¶îÍâÐèÒªµÄ×Ö·û°²Åŵ½ÔÏÈASCIIÖÐ"[", "]", "{", "}" µÈÕ¼¾ÝµÄλÖá£ÎªÁ˽«ÕâЩ·Ç±ê×¼ÄÚÈÝÓиüºÃµÄ¿É¶ÁÐÔ£¬c±ê׼ίԱ»áÓÐÓÓÈýÁª·ûÐòÁД ±íʾȱÉÙµÄ×Ö·û¡£
ÈýÁª·ûÐòÁÐÈçÏ£º
??= (#) ??) (]) ??( ([)
??! (|)   ......
¼´Ê¹½«VirtualBox°²×°µ½±ðµÄÅÌÉÏ£¬Æä×ö³ÉµÄÐéÄâ»ú£¨ÏµÍ³£¬Ó²ÅÌ£©ÈÔ»áĬÈÏÉú³Éµ½ÏµÍ³ÅÌ£¬Ä¬ÈÏC:ÅÌÉÏ£¬Ëæ×ÅÐé»úÊýÁ¿ºÍÄÚÈÝÔö¼Ó¼·Õ¼Á˱¾À´¾Í²»´óµÄϵͳÅ̿ռ䣬ºÜÊDz»±ã¡£
¿ªÊ¼½«C:ÅÌÏÂ.VirtualBoxĿ¼ÏµĶ«Î÷È«ÅÌ¿½±´ÖÁ±ð´¦,È»ºóÔÚVirtualBoxµÄÎļþ/»·¾³ÉèÖà Öн«¡ºÄ¬ÈÏÓ²ÅÌĿ¼¡»ºÍ¡ºÄ¬ÈϼÙÏë»úÆ÷¡»×öÏàÓ¦µÄÐ޸쬵«ÊÇVirtualBox²¢²»ÈÏÕÊ¡£»³ÒÉÔÚ×¢²á±í£¬»òUUIDÖÐдÈëÓë·¾¶Ïà¹ØµÄÄÚÈÝ¡£
ÓÚÊÇɾ³ýÏÖÓÐVirtualBox(ÇмÉÒª±£´æºÃ.VirtualBoxϵÄÄÚÈÝ)¡£ÖØÐ°²×°Ö®ºó´ò¿ª£¬ÀíËùµ±È»Ê²Ã´ÐÅÏ¢¶¼Ã»ÓÐÁË£¬µ«ÄÇʱ²»Òª¼±ÎÒÃDZ¸·ÝÁËÓ²Å̺ÍÐé»úµÄÐÅÏ¢£¬ÕâÑùÒ»Êý¾Ý²»»á¶ª£¬¶þÐé»úµÄÇý¶¯ÉèÖõÈÒ²Ó¦¸Ã²»»á¶ª¡£
½ÓÏÂÀ´£¬ÖØÐÂ×ö³ÉÔÓÐÐé»ú¡£
1,ÔÚVirtualBoxµÄÎļþ/»·¾³ÉèÖà Öн«¡ºÄ¬ÈÏÓ²ÅÌĿ¼¡»Ö¸Ïò±¸·Ý´¦£¬¶ø½«¡ºÄ¬ÈϼÙÏë»úÆ÷¡»ÈÔÖ¸ÏòϵͳĿ¼ËùÔÚ£¬ÒòΪÕâÊÇÎÞ·¨¸Ä±äµÄ£¬ÇÒÐé»ú
±¾Éí´óС²¢²»ºÜ´ó£¬·ÅÔÚcÅÌ¿ÉÒÔ½ÓÊÜ¡£
2£¬È»ºó¿ªÊ¼×ö³ÉÐé»ú¡£ÔÚÉ趨ÍêÐé»úµÄÄÚ´æ´óСºó£¬ÉèÖÃÐé»úÓ²ÅÌÊDz»ÒªÑ¡Ôñйæ×ö³É£¬¶øÊÇÑ¡ÔñʹÓüȴæÓ²ÅÌ¡£Íê³É£¡
µ«ÊÇ£¬ÍøÂçÉèÖõȶ¼¶ªÊ§ÁË£¬ÕâЩ±£´æÔÚMachinesĿ¼Ï¸÷¸öÐé»úµÄXXX.xml ......
ÒÔΪÒÑ¾ÕÆÎÕÌõ¼þ±àÒ룬Ԥ±àÒëµÄÒªÁìÁË£¬½á¹û»¹ÊÇ´æÔںܶàÒÅ©µÄµØ·½£¬ËùÒÔ¹æÕûһϣº
Ìõ¼þ±àÒ룺
1
#ifdef _XXXX
...³ÌÐò¶Î1...
#else
...³ÌÐò¶Î2...
#endif
Õâ±íÃ÷Èç¹û±êʶ·û_XXXXÒѱ»#defineÃüÁÒå¹ýÔò¶Ô³ÌÐò¶Î1½øÐбàÒ룻·ñÔò¶Ô³ÌÐò¶Î2½øÐбàÒë¡£
2
#ifndef _XXXX
...³ÌÐò¶Î1...
#else
...³ÌÐò¶Î2...
#endif
ÕâÀïʹÓÃÁË#ifndef£¬±íʾµÄÊÇif not def¡£µ±È»ÊǺÍ#ifdefÏà·´µÄ×´¿ö£¨Èç¹ûûÓж¨ÒåÁ˱êʶ·û_XXXX£¬ÄÇôִÐгÌÐò¶Î1£¬·ñÔòÖ´ÐгÌÐò¶Î2£©¡£
3
#if ³£Á¿
...³ÌÐò¶Î1...
#elif<³£Á¿±í´ïʽ2>
...³ÌÐò¶Î2...
#elif<³£Á¿±í´ïʽ3>
...³ÌÐò¶Î3...
... ...
#else
...³ÌÐò¶Î2...
#endif
ÕâÀï±íʾ£¬Èç¹û³£Á¿ÎªÕ棨·Ç0£¬Ëæ±ãʲôÊý×Ö£¬Ö»Òª²»ÊÇ0£©£¬¾ÍÖ´ÐгÌÐò¶Î1£¬·ñÔòÖ´ÐгÌÐò¶Î2¡£
ÀýÈç:
#if defined(_PC) && defined(_SSE)
# ifdef DEBUG
# define __PC_VERIFY_ALIGNMENT__
# endif
# ifdef __PC_VERIFY_ALIGNMENT__
# define PC_VERIFY_ALIGN_ASSERT( ......
ÒÔΪÒÑ¾ÕÆÎÕÌõ¼þ±àÒ룬Ԥ±àÒëµÄÒªÁìÁË£¬½á¹û»¹ÊÇ´æÔںܶàÒÅ©µÄµØ·½£¬ËùÒÔ¹æÕûһϣº
Ìõ¼þ±àÒ룺
1
#ifdef _XXXX
...³ÌÐò¶Î1...
#else
...³ÌÐò¶Î2...
#endif
Õâ±íÃ÷Èç¹û±êʶ·û_XXXXÒѱ»#defineÃüÁÒå¹ýÔò¶Ô³ÌÐò¶Î1½øÐбàÒ룻·ñÔò¶Ô³ÌÐò¶Î2½øÐбàÒë¡£
2
#ifndef _XXXX
...³ÌÐò¶Î1...
#else
...³ÌÐò¶Î2...
#endif
ÕâÀïʹÓÃÁË#ifndef£¬±íʾµÄÊÇif not def¡£µ±È»ÊǺÍ#ifdefÏà·´µÄ×´¿ö£¨Èç¹ûûÓж¨ÒåÁ˱êʶ·û_XXXX£¬ÄÇôִÐгÌÐò¶Î1£¬·ñÔòÖ´ÐгÌÐò¶Î2£©¡£
3
#if ³£Á¿
...³ÌÐò¶Î1...
#elif<³£Á¿±í´ïʽ2>
...³ÌÐò¶Î2...
#elif<³£Á¿±í´ïʽ3>
...³ÌÐò¶Î3...
... ...
#else
...³ÌÐò¶Î2...
#endif
ÕâÀï±íʾ£¬Èç¹û³£Á¿ÎªÕ棨·Ç0£¬Ëæ±ãʲôÊý×Ö£¬Ö»Òª²»ÊÇ0£©£¬¾ÍÖ´ÐгÌÐò¶Î1£¬·ñÔòÖ´ÐгÌÐò¶Î2¡£
ÀýÈç:
#if defined(_PC) && defined(_SSE)
# ifdef DEBUG
# define __PC_VERIFY_ALIGNMENT__
# endif
# ifdef __PC_VERIFY_ALIGNMENT__
# define PC_VERIFY_ALIGN_ASSERT( ......
£¨×ª×Ô£©http://blog.pfan.cn/whyhappy/6030.html
º¯ÊýÃûÓ뺯ÊýÖ¸Õë
Ò» ͨ³£µÄº¯Êýµ÷ÓÃ
Ò»¸öͨ³£µÄº¯Êýµ÷ÓõÄÀý×Ó£º
//×ÔÐаüº¬Í·Îļþ
void MyFun(int x); //´Ë´¦µÄÉêÃ÷Ò²¿Éд³É£ºvoid MyFun( int );
int main(int argc, char* argv[])
{
MyFun(10); //ÕâÀïÊǵ÷ÓÃMyFun(10);º¯Êý
return 0;
}
void MyFun(int x) //ÕâÀﶨÒåÒ»¸öMyFunº¯Êý
{
printf(“%d\n”,x);
}
Õâ¸öMyFunº¯ÊýÊÇÒ»¸öÎÞ·µ»ØÖµµÄº¯Êý£¬Ëü²¢²»Íê³ÉʲôÊÂÇé¡£ÕâÖÖµ÷Óú¯ÊýµÄ¸ñʽÄãÓ¦¸ÃÊǺÜÊìϤµÄ°É£¡¿´Ö÷º¯ÊýÖе÷ÓÃMyFunº¯ÊýµÄÊéд¸ñʽ£º
MyFun(10);
ÎÒÃÇÒ»¿ªÊ¼Ö»ÊÇ´Ó¹¦ÄÜÉÏ»òÕß˵´ÓÊýѧÒâÒåÉÏÀí½âMyFunÕâ¸öº¯Êý£¬ÖªµÀMyFunº¯ÊýÃû´ú±íµÄÊÇÒ»¸ö¹¦ÄÜ£¨»òÊÇ˵һ¶Î´úÂ룩¡£
Ö±µ½——
ѧϰµ½º¯ÊýÖ¸Õë¸ÅÄîʱ¡£ÎҲŲ»µÃ²»ÔÚ˼¿¼£ºº¯ÊýÃûµ½µ×ÓÖÊÇʲô¶«Î÷ÄØ£¿
£¨²»Ò ......
C±êʶ·ûÁ´½ÓÓÐ3ÖÖÐÎʽ£ºÍⲿÁ´½ÓµÄ±êʶ·û£¬ÄÚ²¿Á´½ÓµÄ±êʶ·û£¬ÎÞÁ´½ÓµÄ±êʶ·û
ÍⲿÁ´½ÓµÄ±êʶ·û£º´æ´¢Àà±êʶ·ûʹÓà extern ÐÞÊΣ¬»òÎÞ´ËÀàÐÞÊηûÐÞÊΣ¨ÏµÍ³Ä¬ÈÏΪextern £© ||¿ÉÔÚÆäËûÔ´´úÂëÎļþÖÐʹÓÃ
ÄÚ²¿Á´½ÓµÄ±êʶ·û£º ʹÓà static ÐÞÊÎ || Ö»¿ÉÔÚµ±Ç°Ô´´úÂëÎļþÖÐʹÓÃ
ÎÞÁ´½ÓµÄ±êʶ·û£º º¯Êý²ÎÊý£»±»ÉùÃ÷ÔÚº¯ÊýÄÚµÄûÓÐexternÐÞÊεıäÁ¿£¨¾Ö²¿±äÁ¿£©£»·Ç±äÁ¿Ãû£¬·Çº¯ÊýÃûµÄ±êʶ·û£¬Èçlabel name
Ò»¶Î¾µäÀý×Ó£¬ÓÐÖúÓÚÇø±ðºÍ¼ÇÒ䣺
int func1(void); //fuc1¾ßÓÐÍⲿÁ´½Ó
int a; //a ¾ßÓÐÍⲿÁ´½Ó
extern int b=1; //b¾ßÓÐÍⲿÁ´½Ó
static int c; // c ¾ßÓÐÄÚ²¿Á´½Ó
static void func2( int d ) // func2¾ßÓÐÄÚ²¿Á´½Ó
{
extren int a; ......