C ÓïÑԺ궨ÒåÓ÷¨×ܽá
CÓïÑԺ궨ÒåʵÓÃ×ܽá
ºê¶¨ÒåÁËÒ»¸ö´ú±íÌØ¶¨ÄÚÈݵıêʶ·û¡£
Ô¤´¦Àí¹ý³Ì»á°ÑÔ´´úÂëÖгöÏֵĺê±êʶ·ûÌæ»»³Éºê¶¨ÒåʱµÄÖµ¡£
ºê×î³£¼ûµÄÓ÷¨ÊǶ¨Òå´ú±íij¸öÖµµÄÈ«¾Ö·ûºÅ¡£
ºêµÄµÚ¶þÖÖÓ÷¨ÊǶ¨Òå´ø²ÎÊýµÄºê£¬ÕâÑùµÄºê¿ÉÒÔÏóº¯ÊýÒ»Ñù±»µ÷Ó㬵«ËüÊÇÔÚµ÷ÓÃÓï¾ä´¦Õ¹¿ªºê£¬²¢Óõ÷ÓÃʱµÄʵ¼Ê²ÎÊýÀ´´úÌæ¶¨ÒåÖеÄÐÎʽ²ÎÊý¡£
1.#defineÖ¸Áî
#define MAX_NUM 10
int array[MAX_NUM];
for(i=0;i<MAX_NUM;i++) /*……*/
#define VERSION "Version 1.0 Copyright(c) 2003"
2.´ø²ÎÊýµÄ#defineÖ¸Áî
¡¡#define IS_EVEN(n) ((n)%2==0)
¡¡#define MAX(x,y) ((x)>(y) ? (x) :(y))
#define Cube(x) (x)*(x)*(x)
¿ÉÒÔÊÇÈκÎÊý×Ö±í´ïʽÉõÖÁº¯Êýµ÷ÓÃÀ´´úÌæ²ÎÊýx¡£
3.#ÔËËã·û
#µÄ¹¦ÄÜÊǽ«ÆäºóÃæµÄºê²ÎÊý½øÐÐ×Ö·û´®»¯²Ù×÷£¨Stringfication£©£¬¼òµ¥Ëµ¾ÍÊÇÔÚ¶ÔËüËùÒýÓõĺê±äÁ¿Í¨¹ýÌæ»»ºóÔÚÆä×óÓÒ¸÷¼ÓÉÏÒ»¸öË«ÒýºÅ¡£ÀýÈ磺
#define _STR(s) #s
#define WARN_IF(EXP) \
do{ if (EXP) \
fprintf(stderr, "Warning: " #EXP "\n"); } \
while(0)
ÄÇôʵ¼ÊʹÓÃÖлá³öÏÖÏÂÃæËùʾµÄÌæ»»¹ý³Ì£º
WARN_IF (divider == 0);
±»Ì滻Ϊ
do
{
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "\n");
} while(0)
Ïà¹ØÎĵµ£º
#include <stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int*)(&a+1);
int *ptr2=(int*)((int)a+1);
printf("%p,%x,%p\n",(int)a,*(ptr2+1),ptr1);//(int*)(&a));
printf("%d\n",(int*)(&a-16));
printf("%d,%x\n",ptr1[-1] ......
¼ì²é¿Õ¸ñ×Ö·û
#include <ctype.h>
int isspace ( int c );
http://www.cplusplus.com/reference/clibrary/cctype/isspace/
Checks if parameter c is a white-space character.For the purpose of this function, standard white-space characters are:
' '
(0x20)
space (SPC)
'\t'
(0x09)
horizontal tab ......
¡¡ ÉÐÒ×CÓÊÏäÊÇÒ»¿îÍêÈ«´òÆÆÁËÆóÒµÓÊÏäÒ»¹áģʽµÄвúÆ·¡£ÆóÒµÄܹ»ÍêÈ«×ÔÖ÷¾ö¶¨ÓÊÏäµÄÒ»ÇУ¬Ö»ÒªÊÇÆóÒµÌá³öµÄÐèÇó£¬ÎÞÂÛÊÇ´Óµ¥¶À·þÎñÆ÷¼ÜÉè¡¢¶ÀÏíµÄ´ø¿íÐèÇó¡¢¹¦Ä͍ܵ֯£¬ÒÔ¼°Óë°ì¹«OA²úÆ·»ò²»Í¬Èí¼þµÄÈںϵȣ¬ÉÐÒ×CÓÊÏä¶¼¿ÉÒÔΪÆä×öµ½¡£´ËÍ⣬ÉÐÒ×CÓÊÏ仹»áΪÿ¸öÆóÒµÅäÖÃרÏí¼¼Êõ¹¤³Ìʦ£¬´Ó×î³õµÄ·½°¸Äⶨµ½ºóÆÚµÄ ......
ÈÝÒ×´íÎóµÄʹÓÃÖ¸Õë:
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str ÈÔȻΪ NULL
strcpy(str, "hello"); // ÔËÐдíÎó
}
벡³öÔÚº¯ÊýGetMemory ÖС£±àÒëÆ÷×ÜÊÇÒ ......
Linux
ÏÂ
C
¿ª·¢——
gcc
£¬
gdb
µÄʹÓÃ
×÷Õߣº
zccst
ÎÒÃÇѧϰµÄ¹ý³ÌÓ¦¸ÃÊÇÒ»¸ö»ýÀ۵Ĺý³Ì£¬ÓÐÎÞµ½ÓУ¬ÓÖÉÙµ½¶à£¬¶ø²»ÄÜÏñÏÂɽµÄºï×Ó¡£
9
Ô·ݵÄʱºòÊǵÚÒ»´Îϵͳѧϰ
gcc, gdb, makefile
£¨Ïê¼ûÇ°Ãæ²©¿Í£©¡£Èç½ñ×÷ΪǶÈëʽϵͳµÄÒ»¸ö×é³É²¿·Ö£¬¾ö¶¨ÖØÑ§Ò»´Î£¬¸Ð¾õÀí½â¼ÓÉîÁËһЩ¡£
gcc
......