ubuntu ϵĵÚÒ»¸öC³ÌÐò
ʹÓà gcc ÔÚ ubuntu Ï ±àÒë Ò»¸ö C³ÌÐò £º
µÚÒ»²½Ö裺´ò¿ª ÖÐ¶Ë £¨Õâ¸ö ÖªµÀ°É£¿£©
ÊäÈë sudo gedit no.c (no.cΪCÎļþÃû×Ö)
sudo ±íʾÄãÊäÈëµÄÃüÁî¾ßÓйÜÀíԱȨÏÞ
gedit ±íʾÄãÒª±à¼Ò»¸öÎļþ
on.c¾ÍÊÇÄãÒª±à¼µÄÎļþÁËŶ£¬Èç¹û¸ÃÎļþ²»´æÔÚ£¬ÏµÍ³»áн¨Ò»¸öÎļþµÄ
µÚ¶þ²½Ö裺ÊäÈëC´úÂë²¢±£´æ£¨²»ÒªÓÐÓï·¨´íÎóŶ£©
µÚÈý²½Ö裺ÊäÈë sudo gcc -o no no.c ÕâÑù¾Í»á½øÐбàÒ룬Èç¹û±àÒë³É¹¦Á˾ͽøÐÐÏÂÒ»²½£¬·ñÔò¼ì²é
ÄãµÄ´úÂëÊÇ·ñÓÐ´í £»sudo µÄÒâ˼ºÍÉÏÃæÒ»Ñù ; gccÊDZíʾÓÃGCC±àÒëÆ÷±àÒë ; £o ÊÇÉú³ÉÄ¿±ê
Îļþ £»no ÊÇÄãÒªÉù³ÆµÄÄ¿±êÎļþµÄÃû×Ö£»no.cÊÇÔ´Îļþ£¨¾ÍÊÇÓÃÀ´Éù³ÆÄ¿±êÎļþµÄÔ´Îļþ£©
µÚËIJ½Ö裺Èç¹ûûÓдíÎó£¬Ö´ÐÐ ÕâÒ»¸ö²½Ö裺 ./no ±íʾÔËÐбàÒëºÃµÄÎļþ
ºÃÁË£¬ÒÔÉ϶¼ÊÇÎÒ³õѧ UBUNTUµÄÐĵà ÈçÓÐÀí½â²»¶ÔµÄ£¬ÇëÖ¸³öŶ £¡
Ïà¹ØÎĵµ£º
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
ÏÂÃæµÄÀý×Ó¶¼ÔÚUbuntu8.04 GCCϱàÒëµÄ½á¹û£¬ÓÐЩûÓиø½á¹û
±à³ÌÒ»¶¨Òª×Ô¼º¶¯ÊÖÊÔÒ»ÊÔ£¡
1.¶¨ÒåÓëÉùÃ÷£¬¶¨ÒåÒª·ÖÅäÄڴ棬ÉùÃ÷Ö»ÊÇÉùÃ÷Ôڱ𴦶¨ÒåÁË
int a; //¶¨Òå
extern int a; //ÉùÃ÷
char str[100]
extern char str[] //ok
char * str[]
extern char str[] //error
char ......
ÔÚC/C++ÖУ¬ÄÚ´æÖÐÊý¾Ý´æ´¢·Ö³É4¸öÇø£¬·Ö±ðÊǶѡ¢Õ»¡¢È«¾Ö/¾²Ì¬´æ´¢ÇøºÍ³£Á¿´æ´¢Çø¡£
Õ»(stack)£¬¾ÍÊÇÄÇЩÓɱàÒëÆ÷ÔÚÐèÒªµÄʱºò·ÖÅ䣬ÔÚ²»ÐèÒªµÄʱºò×Ô¶¯Çå³ýµÄ±äÁ¿µÄ´æ´¢Çø¡£ÀïÃæµÄ±äÁ¿Í¨³£ÊǾֲ¿±äÁ¿¡¢º¯Êý²ÎÊýµÈ¡£
¶Ñ(heap)£¬Ò»°ãÓ ......
Ò»£¬²»Í¬¹Ø¼ü×Ö£¬ÏµÍ³Ñ¹Õ»·½Ê½
1£¬Èç¹ûº¯ÊýfuncÊÇ__cdecl(VCϵÄĬÈϵ÷Ó÷½Ê½)£¬µ÷ÓÃʱÇé¿öÈçÏÂ
int main()
{
//²ÎÊý´ÓÓÒµ½×óѹջ
push 4
push 3
push 2
push 1
call func
add esp 0x10 //µ÷ÓÃÕ߻ָ´¶ÑÕ»Ö¸Õëesp£¬4¸ö²ÎÊýµÄ´óСÊÇ0x10(4x4)
}
Cµ÷ÓÃÔ¼¶¨£¨¼´ÓÃ__cdecl¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ² ......
ÑϸñÀ´Ëµ£¬ÎÞ·¨´Óº¯Êý·µ»ØÒ»¸öÊý×飬µ«¿ÉÒÔ´Óº¯Êý·µ»ØÒ»¸öÖ¸ÏòÈκÎÊý¾Ý½á¹¹µÄÖ¸Õ룬°üÀ¨Ò»¸öÖ¸ÏòÊý×éµÄÖ¸Õë¡£
Ò»ÖÖ·½Ê½ÈçÏ£º
#include <stdio.h>
#include <stdlib.h>
int (*func())[20];//funcÊÇÒ»¸öº¯Êý£¬Ëü·µ»ØÒ»¸öÖ¸Ïò°üÀ¨20¸öintÔªËØµÄÊý×éµÄÖ¸Õë
int main(void)
{
  ......