c ÄÚ´æ¶ÔÆë
µ±ÔÚC Öж¨ÒåÁËÒ»¸ö½á¹¹ÀàÐÍʱ£¬ËüµÄ´óСÊÇ·ñµÈÓÚ¸÷×Ö¶Î(field) ´óС֮ºÍ£¿±àÒëÆ÷½«ÈçºÎÔÚÄÚ´æÖзÅÖÃÕâЩ×ֶΣ¿ANSI C¶Ô½á¹¹ÌåµÄÄÚ´æ²¼¾ÖÓÐʲôҪÇ󣿶øÎÒÃǵijÌÐòÓÖÄÜ·ñÒÀÀµÕâÖÖ²¼¾Ö£¿ÕâЩÎÊÌâ»òÐí¶Ô²»ÉÙÅóÓÑÀ´Ëµ»¹ÓеãÄ£ºý£¬ÄÇô±¾ÎľÍÊÔ×Å̽¾¿ËüÃDZ³ºóµÄÃØÃÜ¡£
Ê×ÏÈ£¬ÖÁÉÙÓÐÒ»µã¿ÉÒԿ϶¨£¬ÄǾÍÊÇANSI C ±£Ö¤½á¹¹ÌåÖи÷×Ö¶ÎÔÚÄÚ´æÖгöÏÖµÄλÖÃÊÇËæËüÃǵÄÉùÃ÷˳ÐòÒÀ´ÎµÝÔöµÄ£¬²¢ÇÒµÚÒ»¸ö×ֶεÄÊ×µØÖ·µÈÓÚÕû¸ö½á¹¹ÌåʵÀýµÄÊ×µØÖ·¡£±ÈÈçÓÐÕâÑùÒ»¸ö½á¹¹Ì壺
struct vector
{int x,y,z;} s;
int *p,*q,*r;
struct vector *ps;
p = &s.x;
q = &s.y;
r = &s.z;
ps = &s;
assert(p < q);
assert(p < r);
assert(q < r);
assert((int*)ps == p);
// ÉÏÊö¶ÏÑÔÒ»¶¨²»»áʧ°Ü
Õâʱ£¬ÓÐÅóÓÑ¿ÉÄÜ»áÎÊ:" ±ê×¼ÊÇ·ñ¹æ¶¨ÏàÁÚ×Ö¶ÎÔÚÄÚ´æÖÐÒ²ÏàÁÚ?" ¡£ ßí£¬¶Ô²»Æð£¬ANSI C ûÓÐ×ö³ö±£Ö¤£¬ÄãµÄ³ÌÐòÔÚÈκÎʱºò¶¼²»Ó¦¸ÃÒÀÀµÕâ¸ö¼ÙÉè¡£ÄÇÕâÊÇ·ñÒâζ×ÅÎÒÃÇÓÀÔ¶ÎÞ·¨¹´ÀÕ³öÒ»·ù¸üÇåÎú¸ü¾«È·µÄ½á¹¹ÌåÄÚ´æ²¼¾Öͼ£¿Å¶£¬µ±È»²»ÊÇ¡£²»¹ýÏÈÈÃÎÒÃÇ´ÓÕâ¸öÎÊÌâÖÐÔÝʱ³éÉí£¬¹Ø×¢Ò»ÏÂÁíÒ»¸öÖØÒªÎÊÌâ————ÄÚ´æ¶ÔÆë¡£
Ðí¶àʵ¼ÊµÄ¼ÆËã»úϵͳ¶Ô»ù±¾ÀàÐÍÊý¾ÝÔÚÄÚ´æÖдæ·ÅµÄλÖÃÓÐÏÞÖÆ£¬ËüÃÇ»áÒªÇóÕâЩÊý¾ÝµÄÊ×µØÖ·µÄÖµÊÇij¸öÊýk( ͨ³£ËüΪ4 »ò8) µÄ±¶Êý£¬Õâ¾ÍÊÇËùνµÄÄÚ´æ¶ÔÆë£¬¶øÕâ¸ök Ôò±»³ÆÎª¸ÃÊý¾ÝÀàÐÍµÄ¶ÔÆëÄ£Êý(alignment modulus) ¡£µ±Ò»ÖÖÀàÐÍS µÄ¶ÔÆëÄ£ÊýÓëÁíÒ»ÖÖÀàÐÍT µÄ¶ÔÆëÄ£ÊýµÄ±ÈÖµÊÇ´óÓÚ1 µÄÕûÊý£¬ÎÒÃǾͳÆÀàÐÍS µÄ¶ÔÆëÒªÇó±ÈT Ç¿( Ñϸñ) £¬¶ø³ÆT ±ÈS Èõ( ¿íËÉ) ¡£ÕâÖÖÇ¿ÖÆµÄÒªÇóÒ»À´¼ò»¯ÁË´¦ÀíÆ÷ÓëÄÚ´æÖ®¼ä´«ÊäϵͳµÄÉè¼Æ£¬¶þÀ´¿ÉÒÔÌáÉý¶ÁÈ¡Êý¾ÝµÄËÙ¶È¡£±ÈÈçÕâôһÖÖ´¦ÀíÆ÷£¬Ëüÿ´Î¶ÁдÄÚ´æµÄʱºò¶¼´Óij¸ö8 ±¶ÊýµÄµØÖ·¿ªÊ¼£¬Ò»´Î¶Á³ö»òдÈë8 ¸ö×Ö½ÚµÄÊý¾Ý£¬¼ÙÈçÈí¼þÄܱ£Ö¤double ÀàÐ͵ÄÊý¾Ý¶¼´Ó8 ±¶ÊýµØÖ·¿ªÊ¼£¬ÄÇô¶Á»òдһ¸ödouble ÀàÐÍÊý¾Ý¾ÍÖ»ÐèÒªÒ»´ÎÄÚ´æ²Ù×÷¡£·ñÔò£¬ÎÒÃǾͿÉÄÜÐèÒªÁ½´ÎÄÚ´æ²Ù×÷²ÅÄÜÍê³ÉÕâ¸ö¶¯×÷£¬ÒòΪÊý¾Ý»òÐíÇ¡ºÃºá¿çÔÚÁ½¸ö·ûºÏ¶ÔÆëÒªÇóµÄ8 ×Ö½ÚÄÚ´æ¿éÉÏ¡£Ä³Ð©´¦ÀíÆ÷ÔÚÊý¾Ý²»Âú×ã¶ÔÆëÒªÇóµÄÇé¿öÏ¿ÉÄÜ»á³ö´í£¬µ«ÊÇIntel µÄIA32 ¼Ü¹¹µÄ´¦ÀíÆ÷Ôò²»¹ÜÊý¾ÝÊÇ·ñ¶ÔÆë¶¼ÄÜÕýÈ·¹¤×÷¡£²»¹ýIntel ·îȰ´ó¼Ò£¬Èç¹ûÏëÌáÉýÐÔÄÜ£¬ÄÇôËùÓеijÌÐòÊý¾Ý¶¼Ó¦¸Ã¾¡¿ÉÄÜµØ¶ÔÆë¡£Win32 ƽ̨ϵÄ΢ÈíC ±àÒëÆ÷(cl.exe for 80x86) ÔÚĬÈÏÇé¿öϲÉÓÃÈçÏÂµÄ¶ÔÆë¹æÔò: Èκλù±¾Êý¾ÝÀàÐÍT µÄ¶ÔÆëÄ£Êý¾ÍÊÇT µÄ´óС£¬¼´s
Ïà¹ØÎĵµ£º
Çë¼û´úÂëÏêϸעÊÍ
// ÐÞ¸´Éæ¼°ºóÊÓÁбíµÄWin2K¼æÈÝÐÔ
// Fixes Win2K compatibility regarding lookaside lists.
//
#ifndef _WIN2K_COMPAT_SLIST_USAGE // Add content(Ôö¼ÓÄÚÈÝ)
#define _WIN2K_COMPAT_SLIST_USAGE
#endif
#include "ntifs.h"
#include "ntdddisk.h"
//
// ÔÚ´úÂëÖпªÆ ......
º¯Êýµ÷ÓÃÕ»µÄʵÏÖ¡£¿ÉÓÃÓÚʵÏÖ¼òµ¥µÄ½Å±¾½âÊÍÆ÷¡£
ÉùÃ÷:
#pragma once
const int BUFFERSIZE = 1024;
const int growfactor = 2;
// this stack is used as call stack.
class TStack{
private:
size_t size; // the stack length
size_t pos; // the stack top position
cha ......
Â¥Ö÷·¢±íÓÚ£º2009-07-24 10:11:03ÊÇÕâÑùµÄ,È¥Ò»¼Ò¹«Ë¾ÃæÊÔ,Óöµ½ÁËÒ»µÀcÓïÑÔµÄÌâ,¸öÈË
¸Ð¾õºÜ¹Ö,ÒÔǰû¼û¹ýÀàËÆµÄ,È»ºóÖ÷¿¼¹Ù˵ÕâÊǹØÓÚCÓïÑÔÇ¿ÈõÀàÐÍת»»Ê²Ã´µÄ,ÎҸоõËû
×Ô¼º¶¼²»ÍêÈ«Çå³þ,È»ºó»ØÀ´ÔÚÍøÉϲ鵽ÕâÊÇÓ¢¹ú½£ÇÅ´óÑ§ÍøÉϳöµÄ¼ÆËã»úÌâ :
#include <stdio.h>
#define init_employee(X,Y) {(X),(Y),wage ......
Õ⼸ÌìÔÚʹÓÃÓÃCд¸öÏîÄ¿×éµÄ×Ô¶¯»¯²âÊÔ¹¤¾ßÀàËÆCGI³ÌÐò£¬µÚÒ»¸öÓöµ½µÄÎÊÌâ¾ÍÊDZàÂëÁË¡£
0~9 a~z A¡«ZÕâЩ×Ö·ûÊDz»»á±»±àÂëµÄ£¬µ«ÊDZÈÈçÒ»Ð©ÌØÊâ×Ö·û»òÊÇÖÐÎÄ£¬post»ògetÊý¾Ýʱ£¬»á¶ÔÊý¾Ý×Ô¶¯½øÐбàÂ룬±ÈÈ纺×Ö'ÖÐ',Èç¹ûÒ³Ãæ²ÉÓõÄÊÇgb2312±àÂ룬'ÖÐ'×ֻᱻ±àÂëΪ'%D6%D0'£¬ºöÂÔ'%'±êʶ,Á½¸öÊ®Áù½øÖÆÊý£¬¼´0xD6,0xD0£¬Áù¸ ......
´æ´¢ÆÚstorage duration(extent)£¬ ָΪ¶ÔÏóÅäÖõÄÄÚ´æµÄ´æ»îÆÚ£¬±ÈÈçlocal extent
Éú´æ¿Õ¼äscope£¬Ö¸¶ÔÏóÔÚ³ÌÐòÄڵĴæ»îÇøÓò£¬¼´¿É±»·ÃÎʵķ¶Î§£¬±ÈÈçfile scope, static scope, local scope
C
local static object
º¯ÊýÄÚ²¿µÄobject£¬¾ßÓÐlocal scope£¬µ«ÊÇÿ´Îº¯Êý±»µ÷Óúó¸Ã¶ÔÏóµÄÄÚ´æ²»ÇåÀí£¬µ½Ï´ε÷Óû¹±£ ......