C λ²Ù×÷
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C λ²Ù×÷
ʱ¼ä£º2009-10-9
×÷Õߣºsofa120
×¢£º ×ªÔØÇë˵Ã÷³ö´¦
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1¡¢Cλ²Ù×÷£ºÀûÓÃλ²Ù×÷£¬¿ÉÒÔ¶Ô×Ö½ÚµÄÿλ½øÐйÜÀíÒÔ¼°²Ù×÷£¬¿ÉÒÔ¼«´óµÄËõСÁË´æ´¢¿Õ¼ä£¬ÓÐÀûÓÚ´æ´¢¿Õ¼äµÄÀûÓã¬ÔÚ×ÊÔ´ÑϸñÒªÇóµÄ»·¾³ÖÐÓм«´óµÄ°ïÖú¡£
λ²Ù×÷£¬Ò»°ãÓУº&(λÓë)£¬|£¨Î»»ò£©£¬~£¨È¡·´£©£¬^£¨Î»Óë»ò£©£¬>>£¨Î»ÓÒÒÆ£©£¬<<£¨Î»×óÒÆ£©¡£
&(λÓë)£¬Á½¸öλͬʱΪ1Ôò½á¹ûΪ1¡£
|£¨Î»»ò£©£¬Ö»ÒªÒ»¸öλΪ1Ôò½á¹¹Îª1¡£
~£¨È¡·´£©£¬¹ËÃû˼Ò壬±ä1Ϊ0£¬±ä0Ϊ1¡£
^£¨Î»Óë»ò£©£¬Á½Î»²»Ïàͬʱ£¬½á¹ûΪ1¡£
>>£¨Î»ÓÒÒÆ£©
<<£¨Î»×óÒÆ£©
2¡¢Î»²Ù×÷µÄÓ¦Óãº
ÑÚÂ룺ÀûÓÃλÓë¸úÑÚÂêÒ»Æð×÷Óã¬Æðµ½°Ñ³ýÑÚÂêÖÐλΪ1µÄλ¶Ô³ÆµÄÑڸǡ£
´ò¿ªÎ»£ºÀûÓÃλ»ò°ÑÏëÖÃ1µÄλ¸ú1λ»ò£¬ÕâÑùÆðµ½´ò¿ªÎ»µÄ×÷Óá£Í¨³£ÓÃÀ´¿ØÖÆÓ²¼þµÄ¶Ë¿Ú¡£
¹Ø±Õλ£ºÍ¨¹ý¸úλÓë²Ù×÷£¬ÀûÓÃ0¸ú1λÓë¾ÍÆðµ½¹Ø±ÕλµÄ²Ù×÷¡£
תÖÃλ£ºÀûÓÃλÓë»òµÄÌØÐÔ£¬0^BΪB£¬1^1Ϊ0£¬1^1Ϊ0£¬¾Í°ÑÏëתÖõÄλתÖÃÁË¡£
²é¿´Ò»Î»µÄÖµ£º£¨±ØÐë×¢ÒâµÄ£©Ê×ÏÈͨ¹ýÑÚÂêÓë»ò¹Ø±Õ²»ÊDzéѯµÄλ¡£È»ºóͨ¹ý±È½Ï£¬¾Í¿ÉÒÔÖªµÀ¸ÃλµÄÖµ¡£
Î»ÒÆµÃµ½ÏàÓ¦µÄλ£ºÀûÓÃÎ»ÒÆ°Ñ²»ÐèÒªµÄλȥ³ý¡£
3¡¢Î»²Ù×÷µÄÁíÒ»ÖÖ·½·¨ÊÇ£ºÎ»×ֶΡ£ËüÊÇÒ»¸öunsigned int»òsigned intÖÐÒ»×éÏàÁÚµÄλ¡£Î»×Ö¶ÎÓÉÒ»¸ö½á¹¹ÌåÉêÃ÷£¬Ìṩÿһ¸ö×ֶεÄÃû×Ö£¬¼´±êÇ©£¬¾ö¶¨Ã¿¸ö×ֶεĿí¶È¡£
È磺
struct
{
unsigned int autfd:1;
unsigned int bldfc:1;
unsigned int undln:1;
unsigned int itals:1;
&nb
Ïà¹ØÎĵµ£º
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾É ......
ÕâÁ½Ìì¿´µ½ÓÐÈËÌÖÂ۵绰¼üÅÌÉϵÄ×Öĸ¡¢ºÅÂëºÍ×ÖĸµÄת»»£¬ÎÒÒ²Ëæ±ãдÁËÒ»¶Î
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 15
char *tbl_itoa[] =
{
"0", // 0
"1", // 1
"ABC", // 2
"DEF", // 3
"GHI", // 4
"JKL", // 5
"MNO", ......
Ò»°ãÔÚµ÷ÊÔ´òÓ¡DebugÐÅÏ¢µÄʱºò, ÐèÒª¿É±ä²ÎÊýµÄºê. ´ÓC99¿ªÊ¼¿ÉÒÔʹ±àÒëÆ÷±ê×¼Ö§³Ö¿É±ä²ÎÊýºê(variadic macros), ÁíÍâGCCÒ²Ö§³Ö¿É±ä²ÎÊýºê, µ«ÊÇÁ½ÖÖÔÚϸ½ÚÉÏ¿ÉÄÜ´æÔÚÇø±ð.
1. __VA_ARGS__
__VA_ARGS__ ½« "..." ´«µÝ¸øºê . Èç
......
(ת)C/C++ ºêÏê½â ÊÕ²Ø
ÖÚ¶àC++Êé¼®¶¼ÖÒ¸æÎÒÃÇCÓïÑÔºêÊÇÍò¶ñÖ®Ê×£¬µ«ÊÂÇé×ܲ»ÈçÎÒÃÇÏëÏóµÄÄÇô»µ£¬¾ÍÈçͬgotoÒ»Ñù¡£ºêÓÐ
Ò»¸öºÜ´óµÄ×÷Ó㬾ÍÊÇ×Ô¶¯ÎªÎÒÃDzúÉú´úÂë¡£Èç¹û˵ģ°å¿ÉÒÔΪÎÒÃDzúÉú¸÷ÖÖÐͱðµÄ´úÂë(ÐͱðÌæ»»)£¬
ÄÇôºêÆäʵ¿ÉÒÔΪÎÒÃÇÔÚ·ûºÅÉϲúÉúеĴúÂë(¼´·ûºÅÌæ»»¡¢Ôö¼Ó)¡£
¹ØÓÚºêµÄһЩÓï·¨ÎÊÌ⣬¿É ......
#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] ......