Facts of C Programming Language
CµÄÒ»Ð©ÕÆ¹Ê
(Ó¢ÎÄÔÎÄ:http://www.programmingfacts.com/2009/12/01/facts-of-c-programming-language/)
C programming language was developed in 1972 by Dennis Ritchie and Brian Kernighan at the Bell Telephone Laboratories (AT&T Bell Laboratories) for use with the Unix operating system for programming computer operating systems. C is a procedural oriented programming language.
CÓïÑÔÊÇÔÚ1972ÄêÓɱ´¶ûʵÑéÊÒµÄDennis RitchieºÍBrian KernighanΪ¿ª·¢²Ù×÷ϵͳ£¬ÎªUnixÌṩ±à³ÌÓïÑÔ¶øÊµÏֵġ£ËüÊÇÃæÏò¹ý³ÌµÄ±à³ÌÓïÑÔ¡£
C was designed as a minimalist language to be used in writing operating systems for minicomputers, which had very limited memories compared with the mainframe computers of the period
C×î³õÖ÷ÒªÊÇÓÃÀ´ÎªÎ¢»ú±àд²Ù×÷ϵͳ£¬Òò¶ø±»Éè¼ÆµÄ“СÇÉ”¶øÓÖ¸»ÓÚ³éÏóÁ¦£¬ÒòΪºÍµ±Ê±µÄ´óÐÍ»úÏà±È£¬Î¢»úµÄÄÚ´æ·Ç³£ÓÐÏÞ¡£
Also C was designed for implementing system software. Although C was designed for implementing system software,it is also widely used for develop ......
CEO
CEO£¨Chief Executive Officer£©£¬¼´Ê×ϯִÐй٣¬ÊÇÃÀ¹úÈËÔÚ20ÊÀ¼Í60Äê´ú½øÐй«Ë¾ÖÎÀí½á¹¹¸Ä¸ï´´ÐÂʱµÄ²úÎËüµÄ³öÏÖÔÚijÖÖÒâÒåÉÏ´ú±í׎«ÔÀ´¶Ê»áÊÖÖеÄһЩ¾ö²ßȨ¹ý¶Éµ½¾Óª²ãÊÖÖС£
ÔÚÎÒ¹ú£¬CEOÕâ¸ö¸ÅÄî×îÔç³öÏÖÔÚÒ»Ð©ÍøÂçÆóÒµÖС£ÔÚÄÇÀCEOÍùÍùÊÇ×Ô·âµÄ£¬Ò²ºÜÉÙÓÐÈËÈ¥Ñо¿ÕâÒ»³ÆÎ½¶ÔÆóÒµµ½µ×Òâζ×Åʲô¡£µ«ÊÇ£¬µ±“CEO”ÔÚÖйú½ÐµÃÔ½À´Ô½ÏìµÄʱºò£¬ÎÒÃÇÓ¦¸ÃÈÏʶµ½£¬¸ß²ãÈËÔ±³ÆÎ½µÄ¸Ä±ä²»ÊÇÒ»¼þСÊ£¬ÉèÁ¢CEOְλ²»Ó¦½ö½öÊǶÔʱÉеÄ×·¸Ï¡£
CFO(Chief Financial Officer)ÒâÖ¸¹«Ë¾Ê×ϯ²ÆÕþ¹Ù»ò²ÆÎñ×ܼ࣬ÊÇÏÖ´ú¹«Ë¾ÖÐ×îÖØÒª¡¢×îÓмÛÖµµÄ¶¥¼â¹ÜÀíְλ֮һ£¬ÊÇÕÆÎÕ×ÅÆóÒµµÄÉñ¾ÏµÍ³(²ÆÎñÐÅÏ¢)ºÍѪҺϵͳ(ÏÖ½ð×ÊÔ´)Áé»êÈËÎï¡£
×öÒ»Ãû³É¹¦µÄCFOÐèÒª¾ß±¸·á¸»µÄ½ðÈÚÀíÂÛ֪ʶºÍʵÎñ¾Ñé¡£¹«Ë¾Àí²ÆÓë½ðÈÚÊг¡½»»¥¡¢ÏîÄ¿¹À¼Û¡¢·çÏÕ¹ÜÀí¡¢²úÆ·Ñз¢¡¢Õ½ÂԹ滮¡¢ÆóÒµºËÐľºÕùÁ¦µÄʶ±ðÓ뽨Á¢ÒÔ¼°¶´Ï¤ÐÅÏ¢¼¼Êõ¼°µç×ÓÉÌÎñ¶ÔÆóÒµµÄ³å»÷µÈ×ÔÈ»¶¼ÊÇCFOÖ°Ôð·¶Î§ÄÚµÄÊ¡£
ÔÚÒ»¸ö´óÐ͹«Ë¾ÔË×÷ÖУ¬CFOÊÇÒ»¸ö´©²åÔÚ½ðÈÚÊг¡²Ù×÷ºÍ¹«Ë¾ÄÚ²¿²ÆÎñ¹ÜÀíÖ®¼äµÄ½ÇÉ«¡£µ£µ±CFOµÄÈ˲Ŵó¶àÊÇÓµÓжàÄêÔÚ½ðÈÚÊг¡³Û³Ò¾ÑéµÄÈË¡£ÔÚÃÀ¹ú£¬ÓÅÐãµÄCFO³£³£ÔÚ»ª¶û½Ö×ö¹ý³É¹¦µÄ»ù½ð¾ÀíÈË¡ ......
ÕâÖÖÐèÇóºÜ¶à,ÓÖÒòΪC++ºÍCÊÇÁ½ÖÖÍêÈ«²»Í¬µÄ±àÒëÁ´½Ó´¦Àí·½Ê½,ËùÒÔÒªÉÔ¼Ó´¦Àí.×ܽá´óÖÂÓÐÁ½´óÀàʵÏÖ·½·¨.
ÎÄÖиø³öµÄÊÇÍêÕûµÄ,¾ßÌåµÄ,µ«ÓÖ×î»ù±¾×î¼òµ¥µÄʵÏÖ,ÖÁÓÚÀíÂÛÐԵĶ«Î÷ÔÚÍøÉϺÜÈÝÒ×ËÑË÷µÄµ½.
Ò».ͨ¹ý´¦Àí±»µ÷ÓõÄCÍ·Îļþ
a.h:
#ifndef __A_H
#define __A_H
#ifdef __cplusplus
extern "C" {
#endif
int ThisIsTest(int a, int b);
#ifdef __cplusplus
}
#endif
#endif
a.c:
#include "a.h"
int ThisIsTest(int a, int b) {
return (a + b);
}
aa.h:
class AA {
public:
int bar(int a, int b);
};
aa.cpp:
#include "a.h"
#include "aa.h"
#include "stdio.h"
int AA::bar(int a, int b){
printf("result=%d\n", ThisIsTest(a, b));
return 0;
}
main.cpp:
#include "aa.h"
int main(int argc, char **argv){
int a = 1;
int b = 2;
AA* aa = new AA();
aa->bar(a, b);
delete(aa);
return(0);
}
Makefile:
all:
gcc -Wall -c a ......
ÕâÖÖÐèÇóºÜ¶à,ÓÖÒòΪC++ºÍCÊÇÁ½ÖÖÍêÈ«²»Í¬µÄ±àÒëÁ´½Ó´¦Àí·½Ê½,ËùÒÔÒªÉÔ¼Ó´¦Àí.×ܽá´óÖÂÓÐÁ½´óÀàʵÏÖ·½·¨.
ÎÄÖиø³öµÄÊÇÍêÕûµÄ,¾ßÌåµÄ,µ«ÓÖ×î»ù±¾×î¼òµ¥µÄʵÏÖ,ÖÁÓÚÀíÂÛÐԵĶ«Î÷ÔÚÍøÉϺÜÈÝÒ×ËÑË÷µÄµ½.
Ò».ͨ¹ý´¦Àí±»µ÷ÓõÄCÍ·Îļþ
a.h:
#ifndef __A_H
#define __A_H
#ifdef __cplusplus
extern "C" {
#endif
int ThisIsTest(int a, int b);
#ifdef __cplusplus
}
#endif
#endif
a.c:
#include "a.h"
int ThisIsTest(int a, int b) {
return (a + b);
}
aa.h:
class AA {
public:
int bar(int a, int b);
};
aa.cpp:
#include "a.h"
#include "aa.h"
#include "stdio.h"
int AA::bar(int a, int b){
printf("result=%d\n", ThisIsTest(a, b));
return 0;
}
main.cpp:
#include "aa.h"
int main(int argc, char **argv){
int a = 1;
int b = 2;
AA* aa = new AA();
aa->bar(a, b);
delete(aa);
return(0);
}
Makefile:
all:
gcc -Wall -c a ......
ÕâÖÖÐèÇóÓ¦¸Ã¾ÍûC++³ÌÐòµ÷ÓÃCº¯ÊýÐèÇó¶àÁË.ĿǰµÄʵÏÖ»ù±¾Ö»ÓÐÒ»Àà·½·¨,¼´Í¨¹ý´¦Àí±»µ÷ÓõÄC++Îļþ.
ÎÄ
Öиø³öµÄÈÔÈ»ÊÇÍêÕûµÄ,¾ßÌåµÄ,µ«ÓÖ×î»ù±¾×î¼òµ¥µÄʵÏÖ,ÖÁÓÚÀíÂÛÐԵĶ«Î÷ÔÚÍøÉϺÜÈÝÒ×ËÑË÷µÄµ½.ÕâÀïÊÇÕë¶Ôµ÷ÓÃC++µÄ³ÉÔ±º¯ÊýµÄʵÏÖ.
aa.h
class AA {
int i;
public:
int ThisIsTest(int a, int b);
float ThisIsTest(float a, float b);
};
extern "C" int ThisIsTest_C(void* s, int a,int b);
extern "C" float PolymorphicTest_C(void* s,float a, float b);
aa.cpp:
#include "aa.h"
int AA::ThisIsTest(int a, int b){
return (a + b);
}
float AA::PolymorphicTest(float a, float b){
return (a+b);
}
int ThisIsTest_C(void* s, int a,int b){
AA* p = (AA*)s;
return p->ThisIsTest(a,b);
}
float PolymorphicTest_C(void* s,float a, float b){
AA* p = (AA*)s;
  ......
ÕâÖÖÐèÇóÓ¦¸Ã¾ÍûC++³ÌÐòµ÷ÓÃCº¯ÊýÐèÇó¶àÁË.ĿǰµÄʵÏÖ»ù±¾Ö»ÓÐÒ»Àà·½·¨,¼´Í¨¹ý´¦Àí±»µ÷ÓõÄC++Îļþ.
ÎÄ
Öиø³öµÄÈÔÈ»ÊÇÍêÕûµÄ,¾ßÌåµÄ,µ«ÓÖ×î»ù±¾×î¼òµ¥µÄʵÏÖ,ÖÁÓÚÀíÂÛÐԵĶ«Î÷ÔÚÍøÉϺÜÈÝÒ×ËÑË÷µÄµ½.ÕâÀïÊÇÕë¶Ôµ÷ÓÃC++µÄ³ÉÔ±º¯ÊýµÄʵÏÖ.
aa.h
class AA {
int i;
public:
int ThisIsTest(int a, int b);
float ThisIsTest(float a, float b);
};
extern "C" int ThisIsTest_C(void* s, int a,int b);
extern "C" float PolymorphicTest_C(void* s,float a, float b);
aa.cpp:
#include "aa.h"
int AA::ThisIsTest(int a, int b){
return (a + b);
}
float AA::PolymorphicTest(float a, float b){
return (a+b);
}
int ThisIsTest_C(void* s, int a,int b){
AA* p = (AA*)s;
return p->ThisIsTest(a,b);
}
float PolymorphicTest_C(void* s,float a, float b){
AA* p = (AA*)s;
  ......
2005Ä껪ΪÕÐÆ¸--CÓïÑÔ±ÊÊÔÊÔÌâ
Ò»¡¢ÅжÏÌ⣨¶ÔµÄдT£¬´íµÄдF²¢ËµÃ÷ÔÒò£¬Ã¿Ð¡Ìâ4·Ö£¬¹²20·Ö£©
1¡¢ÓÐÊý×鶨Òåint a[2][2]={{1},{2,3}};Ôòa[0][1]µÄֵΪ0¡££¨ T £©
2¡¢int (*ptr) (),ÔòptrÊÇһάÊý×éµÄÃû×Ö¡££¨ F£¬ ptrΪһ¸öº¯ÊýÖ¸Õë £©
3¡¢Ö¸ÕëÔÚÈκÎÇé¿ö϶¼¿É½øÐÐ>,<,>=,<=,==ÔËËã¡££¨ F£¬Ö¸Õë±È½Ï´óСûÓÐÈκÎÒâÒ壬µ«ÊÇ¿ÉÒԱȽÏ==Ó룡= £©
4¡¢switch(c) Óï¾äÖÐc¿ÉÒÔÊÇint ,long,char ,float ,unsigned int ÀàÐÍ¡££¨ F£¬²»¿ÉÒÔΪfloat £©
5¡¢#define print(x) printf(£¢the no, £¢#x£¢,is £¢) (T)
¶þ¡¢Ìî¿ÕÌ⣨¹²30·Ö£©
1¡¢ÔÚwindowsÏ£¬Ð´³öÔËÐнá¹û£¬Ã¿¿Õ2·Ö£¬¹²10·Ö¡£
char str[ ]= £¢Hello£¢;
char *p=str;
int n=10;
sizeof(str)=( 6 )
sizeof(p)=( 4 )
sizeof(n)=( 4 )
void func(char str[100])
{ }
sizeof(str)=( 4 )
2¡¢void setmemory(char **p, int num)
{ *p=(char *) malloc(num);}
void test(void)
{&nbs ......
±àÒ룺C³ÌÐòÖ±½Ó±àÒë³É±ê×¼µÄ¶þ½øÖÆ¿ÉÖ´ÐеĴúÂ룬µ«C#µÄÔ´³ÌÐò²¢²»ÊDZ»±àÒë³É¶þ½øÖÆ¿ÉÖ´ÐеÄÐÎʽ£¬¶øÊÇÒ»ÖÖÖмäÓïÑÔ£¨MSIL£©£¬ÀàËÆJAVAÖеÄ×Ö½ÚÂë
½á¹¹Ì壺C#µÄ½á¹¹ÌåÓëC++µÄ½á¹¹ÌåÏàËÆ¡£µ«ÊÇC#µÄ½á¹¹ÌåÓëÀàÊDz»Í¬µÄ£¬¶øÇÒ²»Ö§³Ö¼Ì³Ð¡£
Ô¤±àÒ룺C#ÖдæÔÚÔ¤±àÒëµÄÖ¸ÁîÖ§³ÖÌõ¼þ±àÒ룬¾¯¸æ£¬´íÎ󱨸æºÍ±àÒëÐпØÖÆ¡£ÆäÖ¸ÁîÓëC/C++Óе㲻ͬ¡£
ûÓÐÁË#includeαָÁî¡£
²¿·Ö²Ù×÷·û¿ÉÒÔ±»ÖØÔØ£¬ÌرðµÄÊÇûÓÐÒ»¸ö¸³ÖµÔËËã·ûÄܹ»±»ÖØÔØ¡£
ÄÚ´æ¹ÜÀí·½Ãæ£ºÓɵײãµÄ.net¿ò¼Ü½øÐÐ×Ô¶¯»ØÊÕÄÚ´æÀ¬»ø¡£
......
±àÒ룺C³ÌÐòÖ±½Ó±àÒë³É±ê×¼µÄ¶þ½øÖÆ¿ÉÖ´ÐеĴúÂ룬µ«C#µÄÔ´³ÌÐò²¢²»ÊDZ»±àÒë³É¶þ½øÖÆ¿ÉÖ´ÐеÄÐÎʽ£¬¶øÊÇÒ»ÖÖÖмäÓïÑÔ£¨MSIL£©£¬ÀàËÆJAVAÖеÄ×Ö½ÚÂë
½á¹¹Ì壺C#µÄ½á¹¹ÌåÓëC++µÄ½á¹¹ÌåÏàËÆ¡£µ«ÊÇC#µÄ½á¹¹ÌåÓëÀàÊDz»Í¬µÄ£¬¶øÇÒ²»Ö§³Ö¼Ì³Ð¡£
Ô¤±àÒ룺C#ÖдæÔÚÔ¤±àÒëµÄÖ¸ÁîÖ§³ÖÌõ¼þ±àÒ룬¾¯¸æ£¬´íÎ󱨸æºÍ±àÒëÐпØÖÆ¡£ÆäÖ¸ÁîÓëC/C++Óе㲻ͬ¡£
ûÓÐÁË#includeαָÁî¡£
²¿·Ö²Ù×÷·û¿ÉÒÔ±»ÖØÔØ£¬ÌرðµÄÊÇûÓÐÒ»¸ö¸³ÖµÔËËã·ûÄܹ»±»ÖØÔØ¡£
ÄÚ´æ¹ÜÀí·½Ãæ£ºÓɵײãµÄ.net¿ò¼Ü½øÐÐ×Ô¶¯»ØÊÕÄÚ´æÀ¬»ø¡£
......
±àÒ룺C³ÌÐòÖ±½Ó±àÒë³É±ê×¼µÄ¶þ½øÖÆ¿ÉÖ´ÐеĴúÂ룬µ«C#µÄÔ´³ÌÐò²¢²»ÊDZ»±àÒë³É¶þ½øÖÆ¿ÉÖ´ÐеÄÐÎʽ£¬¶øÊÇÒ»ÖÖÖмäÓïÑÔ£¨MSIL£©£¬ÀàËÆJAVAÖеÄ×Ö½ÚÂë
½á¹¹Ì壺C#µÄ½á¹¹ÌåÓëC++µÄ½á¹¹ÌåÏàËÆ¡£µ«ÊÇC#µÄ½á¹¹ÌåÓëÀàÊDz»Í¬µÄ£¬¶øÇÒ²»Ö§³Ö¼Ì³Ð¡£
Ô¤±àÒ룺C#ÖдæÔÚÔ¤±àÒëµÄÖ¸ÁîÖ§³ÖÌõ¼þ±àÒ룬¾¯¸æ£¬´íÎ󱨸æºÍ±àÒëÐпØÖÆ¡£ÆäÖ¸ÁîÓëC/C++Óе㲻ͬ¡£
ûÓÐÁË#includeαָÁî¡£
²¿·Ö²Ù×÷·û¿ÉÒÔ±»ÖØÔØ£¬ÌرðµÄÊÇûÓÐÒ»¸ö¸³ÖµÔËËã·ûÄܹ»±»ÖØÔØ¡£
ÄÚ´æ¹ÜÀí·½Ãæ£ºÓɵײãµÄ.net¿ò¼Ü½øÐÐ×Ô¶¯»ØÊÕÄÚ´æÀ¬»ø¡£
......