Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÎÒµÄCʵ¼ù(2)£ºÁªºÏµÄÃîÓÃ

    ÔÚCÓïÑÔÖУ¬ÁªºÏÀàÐÍÊÇÒ»ÖֱȽÏÌØÊâµÄÀàÐÍ£¬Æä¶à¸ö³ÉÔ±¹²ÏíÒ»¸ö´æ´¢Çø£¨Îª×î´ó³ÉÔ±µÄ³¤¶È£©£¬Ò»´ÎÖ»ÄÜ°üº¬Ò»¸ö³ÉÔ±Öµ£¬»á½øÐÐÄÚ´æ¶ÔÆë¡£¶ÔÁªºÏÀàÐͽøÐÐsizeofÔËËã»á°üÀ¨ËùÓгÉÔ±ËùÐèÒªµÄ´æ´¢¿Õ¼äÁ¿£¬»¹°üÀ¨³ÉÔ±¼äºÍ³ÉÔ±ºóÃæµÄÌî³ä¿Õ¼ä¡£ÁªºÏÀàËÆÓÚÆäËûÓïÑÔÖеē±äÌå¼Ç¼”£¬Èç¹ûÁªºÏµÄ³¤¶ÈºÜ´ó»òÕßÓдóÁ¿µÄÁªºÏ£¬Ôò¿ÉÒÔ´ó´ó½ÚÊ¡´æ´¢¿Õ¼ä¡£
    1¡¢ÁªºÏÖ»ÄÜÒ»´Î¸³ÖµÒ»¸ö³ÉÔ±£¬²¢Ê¹ÓÃËü£¬µ«CÓïÑÔûÓÐÌṩ²éѯÁªºÏÉÏÒ»´Î¸³ÖµËùÓóÉÔ±µÄ·½·¨¡£ÎÒÃÇ¿ÉÒÔ¶¨ÒåÒ»¸öenum£¬ÆäÖи÷¸öö¾Ù³£Á¿´ú±íunion¸÷¸ö³ÉÔ±µÄ±êÖ¾¡£È»ºó°ÑunionºÍÕâ¸öenum·â×°ÔÚÒ»¸östructÖУ¬µ±¶ÔunionµÄij¸ö³ÉÔ±¸³ÖµÊ±£¬¾ÍÉèÖÃÏàÓ¦µÄ±êÖ¾£¬ÕâÑù¾Í¿ÉÒÔ¸ú×ÙÁªºÏµÄ³ÉÔ±¸³Öµ¡£
/* widget.c£ºÓÃö¾Ù³£Á¿À´¸ú×ÙÁªºÏÀàÐ͵ijÉÔ±¸³Öµ */
#include <stdio.h>
#include <string.h>
enum widget_tag{ /* ÁªºÏµÄ¸÷¸ö³ÉÔ±µÄ±êÖ¾ */
count_widget,
value_widget,
name_widget
};
struct WIDGET{ /* °ÑunionºÍenum·â×°ÔÚÒ»¸östructÖÐ */
enum widget_tag tag;
union{
long count;
double value;
char name[10];
} data;
} x;
typedef struct WIDGET widget;
/* µ÷Óñ¾º¯Êý¾Í¿ÉÒÔ²»±Ø¿¼ÂÇÁªºÏµÄÉÏÒ»´Î¸³ÖµËùÓóÉÔ± */
void print_widget(widget w){
switch(w.tag){
case count_widget:
printf("Count: %ld\n",w.data.count);
break;
case value_widget:
printf("Value: %.15f\n",w.data.value);
break;
case name_widget:
printf("Name: \"%s\"\n",w.data.name);
break;
}
}
int main(){
x.tag=count_widget; /* Òª¸ø³ÉÔ±count¸³Öµ£¬ÉèÖÃÆä±êÖ¾ */
x.data.count=10000;
print_widget(x); /* »á×Ô¶¯´òÓ¡¸Ã³ÉÔ±µÄÖµ */

x.tag=value_widget;
x.data.value=3.14159265358979323846;
print_widget(x);

x.tag=name_widget;
strncpy(x.data.name,"Millard",10);
print_widget(x);
return 0;
}

    2¡¢Èç¹ûÒýÓÃÁªºÏµÄijһ¸ö³ÉÔ±£¬µ«ÁªºÏÉÏÒ»´Î¸³ÖµµÄ²»ÊǸóÉÔ±£¬ÔòÊÇÒÔ²»¿ÉÒÆÖ²µÄ·½Ê½Ê¹ÓÃÁªºÏ¡£ÎÒÃÇ¿ÉÒÔÀûÓÃÕâ¸ö·½·¨À´Á˽â¼ÆËã»úÄÚ²¿µÄһЩµ×²ãÊý¾Ý±íʾ·½·¨¡£ÀýÈçÒª·¢ÏÖ¸¡µãÊýÊÇÈçºÎ±íʾµÄ£º
#include <stdio.h>
/* ÓÃÁªºÏÀàÐÍÀ´»ñÈ¡¸¡µãÊýµÄµ×²ã±íʾ */
void prin


Ïà¹ØÎĵµ£º

ÈçºÎʹÓ÷ºÐÍÄ£擬virtual? (C/C++) (template)

ÍøÉÏÒ»µÀ½ðɽµÄÃæÊÔÌ⣺
http://topic.csdn.net/u/20100524/14/0eff992a-2849-4db6-bdaa-d4a200e79b7c.html
Çë·Ö±ðÓÃC++µÄÃæÏò¶ÔÏóºÍ·ºÐÍ»úÖÆ£¬±àдʵÏÖTemplate MethodģʽµÄʾÀý´úÂ룬²¢±È½ÏÁ½ÖÖ·½Ê½¸÷×ÔµÄÓÅȱµã¡£
ÓÃÐ麯ÊýʵÏÖTemplate MethodµÄ·½Ê½¾Í²»¶à˵ÁË¡£Ó÷ºÐ͵ķ½Ê½ÊµÏÖ¶à̬ÔÚATLÀïÃæÓдóÁ¿µÄÓõ½£¡
·ºÐ͵ ......

C preprocessor

http://en.wikipedia.org/wiki/C_preprocessor
C preprocessor
from Wikipedia, the free encyclopedia
Jump to:navigation, search
The C preprocessor (cpp) is the preprocessor for the C programming language. In many C implementations, it is a separate program invoked by the compiler as the first part ......

C¼¼ÇÉÊ°ÒÅ~

1. ÔõÑù½¨Á¢ºÍÀí½â·Ç³£¸´ÔÓµÄÉùÃ÷£¿ÀýÈ綨ÒåÒ»¸ö°üº¬N ¸öÖ¸Ïò·µ»ØÖ¸Ïò×Ö·ûµÄÖ¸ÕëµÄº¯ÊýµÄÖ¸ÕëµÄÊý×飿
Õâ¸öÎÊÌâÖÁÉÙÓÐÒÔÏÂ3 ÖÖ´ð°¸:
1. char *(*(*a[N])())();
2. ÓÃtypedef Öð²½Íê³ÉÉùÃ÷:
typedef char *pc;  /* ×Ö·ûÖ¸Õë*/
typedef pc fpc(); /* ·µ»Ø×Ö·ûÖ¸ÕëµÄº¯Êý*/
typedef fpc *pfpc; /* ÉÏÃ溯ÊýµÄÖ¸Õë*/ ......

C' Fragment

°ÑÊäÈëµÄÒ»´®×Ö·ûת³ÉÊý×飬ת³ÉÁ´±í£¬È»ºóɾȥÆäÖÐÖ¸¶¨µÄ×Ö·û£¬ÔÚβ²¿Ìí¼ÓÒ»¸ö×Ö·û¡£
£¨³ÌÐò»¹²»ÍêÉÆ£¬Ã»ÓжÔÊä´íµÄÇé¿ö½øÐд¦Àí£¬£¬ÔÝʱÏÈÕâÑù°É¡£¡£= =¡££©
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct link)
struct link
{
char ch;
struct link *next;
}*string;
char a ......

c ÓïÑÔÏÝÚå

Ô­Öø£ºAndrew Koenig - AT&T Bell Laboratories Murray Hill, New Jersey 07094
·­Ò룺lover_P
0 ¼ò½é
    CÓïÑÔ¼°ÆäµäÐÍʵÏÖ±»Éè¼ÆΪÄܱ»×¨¼ÒÃÇÈÝÒ×µØʹÓá£ÕâÃÅÓïÑÔ¼ò½à²¢¸½Óбí´ïÁ¦¡£µ«ÓÐһЩÏÞÖÆ¿ÉÒÔ±£»¤ÄÇЩ¸¡ÔêµÄÈË¡£Ò»¸ö¸¡ÔêµÄÈË¿ÉÒÔ´ÓÕâЩÌõ¿îÖлñµÃһЩ°ïÖú¡£
   &nbs ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ