C ÓïÑÔÖеÄÀàÐÍת»»ÎÊÌâ
C ÓïÑÔÖеÄÀàÐÍת»»ÎÊÌâ
Ò»¡¢ÎÊÌâµÄÒý³ö
¿´ÏÂÃæÒ»¶Î C ³ÌÐò£º
#include <stdio.h>
int main()
{
short a, b;
float f;
double d;
int i1, i2;
i1 = i2 = 2000000000; //²âÊÔ»·¾³ÖÐ int µÄ±íʾ·¶Î§Îª -2147483648 ~ 2147483647
printf("%d\n", i1+i2); //Òç³ö£¡
a = b = 30000; //²âÊÔ»·¾³ÖÐ short µÄ±íʾ·¶Î§Îª -32768 ~ 32767
printf("%d\n", a+b); //Òç³ö£¿
f = d = 123456789.0;
printf("%f\n", f); //Õý³£Êä³ö£¿
printf("%f\n", d); //Õý³£Êä³ö£¿
return 0;
}
ÔËÐгÌÐòÎÒÃÇ¿´µ½£¬i1+i2 µÄ½á¹ûÀíËùÓ¦µ±µØÒç³öÁË£¬¶ø a+b µÄ½á¹ûȴûÓÐÏñÏëÏóÖеÄÄÇÑùÒç³öΪһ¸ö¸ºÊý¡£
ÁíÍ⣬printf ÖУ¬%f ¶ÔÓÚ float ºÍ double Ð͵ÄÖµ¶¼Äܹ»ÕýÈ·Êä³ö¡£È»¶øÔÚ´ó¶àÊýϵͳÉÏ£¬float ºÍ double µÄÄÚ´æ½á¹¹²¢²»Ïàͬ¡£
ÀàËÆµØ£¬%d Ò²ÄÜͬʱ½ÓÊÕ short ºÍ int Ð͵ÄÊý¾Ý¡£
ÈçºÎ½âÊÍÉÏÃæµÄÏÖÏó£¿
¶þ¡¢ÎÊÌâµÄ½â´ð——ĬÈÏÀàÐÍת»»
C ÓïÑԹ涨ÁËÒ»ÀàÀàÐÍת»»£¬³Æ×÷“³£ÓÃËãÊõÀàÐÍת»»”£¨Usual arithmetic conversions£©£¬ÓÃÓÚ±í´ïʽÇóÖµµÄÀàÐ͵÷Õû£¬³£¼ûµÄ“µÍ¾«¶ÈÀàÐÍÏò¸ß¾«¶ÈÀàÐÍ¿¿”µÄ˵·¨¼´³öÓÚ´Ë¡£
1¡¢¼¸¸öÖØÒª¸ÅÄî
(1) ËãÊõ£¨arithmetic£©ÀàÐÍ£º°üÀ¨ÕûÐͺ͸¡µãÐÍ£¨ÊµÊýºÍ¸´Êý£©
(2) ±êÁ¿£¨scalar£©ÀàÐÍ£º°üÀ¨ËãÊõÀàÐͺÍÖ¸ÕëÀàÐÍ
(3) ¼¯ºÏ£¨aggregate£©ÀàÐÍ£º°üÀ¨Êý×éÀàÐͺͽṹÀàÐÍ
ÉÏÃæµÄ (2) ºÍ (3) ÕâÀïûÓÐÓõ½£¬Ö÷ÒªÊÇΪÁËÍêÕûÐԺͷ½±ãÔĶÁ±ê×¼Ìá³ö¡£
2¡¢ÕýʽÌÖÂÛ
(1) ÕûÊýÀàÐÍÌáÉý£¨integer promotions£©
¡¡¡¡ÊÊÓöÔÏó£º±È int ºÍ unsigned int µÍ¼¶µÄÕûÊýÀàÐÍ»òÕß _Bool, int, signed int ºÍ unsigned int µÄ“λÓò”ÀàÐÍ¡£
¡¡¡¡²Ù×÷£ºÈç¹û int ¿ÉÒÔÈÝÄɱ»×ª»»ÀàÐ͵ÄÒ»ÇÐȡֵ£¬ÔòÌáÉýÖÁ int£¬·ñÔòÌáÉýÖÁ unsigned int¡£
(2) ³£ÓÃËãÊõÀàÐÍת»»£¨Usual arithmetic conversions£©µÄ¹ý³Ì
¡¡¡¡¢ÙÈç¹ûÓи¡µãÊý£¬°´ÕÕ float -> double -> long double µÄ¼¶±ðת»»ÖÁ½Ï¸ßµÄÀàÐÍ¡£
¡¡¡¡¢Ú·ñÔò£¬Ê×ÏÈ×öÕûÊýÀàÐÍÌáÉý£¬È»ºó½«ÌáÉýºóµÄÀàÐÍÔÙ°´ÕûÐͼ¶±ðת»»ÖÁ½Ï¸ßÀàÐÍ¡£
(3) ÒªÇó“³£ÓÃËãÊõÀàÐÍת»»”µÄÇéÐÎ
¡¡¡¡¢Ùµ¥Ä¿ÊýÖµÔËËã·û£¨+, -, ~£©£¬²»°üÀ¨£¨!£©
¡¡¡¡¢Ú³Ë·¨ÐÔÔËËã·û£¨*, /, %£©
¡¡¡¡¢Û¼Ó·¨ÐÔÔËËã·û£¨+, -£©ÖУ¬µ±Á½²àµÄ²Ù×÷Êý¶¼ÊÇËãÊõÀàÐ͵Äʱºò
¡¡¡¡¢
Ïà¹ØÎĵµ£º
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
ÕâÆªÎÄÕÂÊÇʹÓÃSQLite C/C++½Ó¿ÚµÄÒ»¸ö¸ÅÒª½éÉܺÍÈëÃÅÖ¸ÄÏ¡£
ÓÉÓÚÔçÆÚµÄSQLiteÖ»Ö§³Ö5¸öC/C++½Ó¿Ú£¬Òò¶ø·Ç³£ÈÝÒ×ѧϰºÍʹÓ㬵«ÊÇËæ×ÅSQLite¹¦ÄܵÄÔöÇ¿£¬ÐµÄC/C++½Ó¿Ú²»¶ÏµÄÔö¼Ó½øÀ´£¬µ½ÏÖÔÚÓг¬¹ý150¸ö²»Í¬µÄAPI½Ó¿Ú¡£ÕâÍùÍùʹ³õѧÕßÍû¶øÈ´²½¡£ÐÒÔ˵ÄÊÇ£¬´ó¶àÊýSQLiteÖеÄC/C++½Ó¿ÚÊÇרÓõģ¬Òò¶øºÜÉÙ±»Ê¹Óõ½¡£¾¡¹ÜÓÐÕâ ......
1. static ±äÁ¿
¾²Ì¬±äÁ¿µÄÀàÐÍ ËµÃ÷·ûÊÇstatic¡£ ¾²Ì¬±äÁ¿µ±È»ÊÇÊôÓÚ¾²Ì¬´æ´¢·½Ê½£¬µ«ÊÇÊôÓÚ¾²Ì¬´æ´¢·½Ê½µÄÁ¿²»Ò»¶¨¾ÍÊǾ²Ì¬±äÁ¿¡£ ÀýÈçÍⲿ±äÁ¿ËäÊôÓÚ¾²Ì¬ ´æ´¢·½Ê½£¬µ«²»Ò»¶¨ÊǾ²Ì¬±äÁ¿£¬±ØÐëÓÉ static¼ÓÒÔ¶¨Òåºó²ÅÄܳÉΪ¾²Ì¬Íⲿ±äÁ¿£¬»ò³Æ¾²Ì¬È«¾Ö±äÁ¿¡£
2. ¾²Ì¬¾Ö²¿±äÁ¿
¾²Ì¬¾Ö²¿±äÁ¿ÊôÓÚ¾²Ì¬´æ´¢·½Ê½£¬Ëü¾ßÓÐÒÔÏ ......
µ±ÔÚC Öж¨ÒåÁËÒ»¸ö½á¹¹ÀàÐÍʱ£¬ËüµÄ´óСÊÇ·ñµÈÓÚ¸÷×Ö¶Î(field) ´óС֮ºÍ£¿±àÒëÆ÷½«ÈçºÎÔÚÄÚ´æÖзÅÖÃÕâЩ×ֶΣ¿ANSI C¶Ô½á¹¹ÌåµÄÄÚ´æ²¼¾ÖÓÐʲôҪÇ󣿶øÎÒÃǵijÌÐòÓÖÄÜ·ñÒÀÀµÕâÖÖ²¼¾Ö£¿ÕâЩÎÊÌâ»òÐí¶Ô²»ÉÙÅóÓÑÀ´Ëµ»¹ÓеãÄ£ºý£¬ÄÇô±¾ÎľÍÊÔ×Å̽¾¿ËüÃDZ³ºóµÄÃØÃÜ¡£
Ê×ÏÈ£¬ÖÁÉÙÓÐÒ»µã¿ÉÒԿ϶¨£¬ÄǾÍÊÇANSI C ±£Ö¤½á¹¹ÌåÖи÷× ......
ÎÒÃÇÒѾÁ˽âÈçºÎ¶¨ÒåÏß³ÌÈë¿Úµãº¯Êý¡¢µ÷ÓÃϵͳAPI´´½¨Ö´ÐÐÖ¸¶¨º¯ÊýµÄÏ̡߳£±¾½Ú½«½ÒʾÕâÒ»ÇÐÔÚϵͳÄÚ²¿ÊÇÈçºÎÍê³ÉµÄ¡£
ͼ6-1ÃèÊöÁËÏ̴߳´½¨²¢Íê³É³õʼ»¯ºóµÄ״̬¡£µ÷ÓÃCreateThread»áʹϵͳ²úÉúÒ»¸öÏß³ÌÄں˶ÔÏ󣬯äÒýÓüÆÊý£¨Usage count£©±»³õʼ»¯Îª2£¨´´½¨Ï̵߳Ľø³ÌºÍÏ̱߳¾Éí¶¼ÒýÓÃÁ˸ÃÄں˶ÔÏ󣩣¬ÆäËüÊôÐÔÒ²Íê³ÉÁË ......