³ÌÐòÔ±µÄ×ÔÎÒÐÞÑø: ³ÌÐòÔËÐеĻùʯ C/C++ÔËÐпâ
Ò»¸öCÓïÑÔÔËÐпâ´óÖ°üº¬ÁËÈçϹ¦ÄÜ:
1. Æô¶¯ÓëÍ˳ö: °üÀ¨Èë¿Úº¯Êý¼°Èë¿Úº¯ÊýËùÒÀÀµµÄÆäËüº¯ÊýµÈ
2. ±ê×¼º¯Êý: ÓÉCÓïÑÔ±ê×¼¹æ¶¨µÄCÓïÑÔ±ê×¼¿âËùÓµÓеĺ¯ÊýʵÏÖ.
3. I/O: IO¹¦Äܵķâ×°ºÍʵÏÖ
4. ¶Ñ:¶ÑµÄ·â×°ºÍʵÏÖ
5. ÓïÑÔʵÏÖ: ÓïÑÔÖÐÒ»Ð©ÌØÊ⹦ÄܵÄʵÏÖ.
6. µ÷ÊÔ: ʵÏÖµ÷ÊÔ¹¦ÄܵĴúÂë.
ÔÚÕâЩÔËÐпâµÄ×é³É³É·ÖÖÐ, CÓïÑÔ±ê×¼Õ¼¾ÝÁËÖ÷Òª²¢ÇÒ´óÓÐÀ´Í·.
1. ±ä³¤²ÎÊý
º¯ÊýµÄʵÏÖÈçÏÂ:
#define _crt_va_start(ap,v) ( ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v) )
//va_startÈ¡µÚÒ»¸ö²ÎÊýµÄµØÖ·, ²¢ÔÚÕ»ÉÏÏòÉÏÒÆ¶¯Ö¸Õë
#define _crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
//va_argÖ÷ÒªÊÇÏÈÒÆ¶¯Ö¸Õë,ÔÙÈ¡ÉÏÒ»¸öÖµ.
//×¢Òâ: tÊÇÖ¸Òª´«ÈëµÄÀàÐÍ,ӦΪҪȷ¶¨Òƶ¯µÄÖ¸ÕëµÄÔ¶½ü.
#define _crt_va_end(ap) ( ap = (va_list)0 )
//ʹapÖ¸ÕëΪ0
//Ö÷ÒªÊÇÀûÓÃÕ»µÄÔÀí.
#include <stdio.h>
#include <stdarg.h>
int sum(int a, ...)
{
int v = 0;
va_list ap;
va_start(ap, a);
while(a--)
v += va_arg(ap, int);
va_end(ap);
return v;
}
int main()
{
printf("%d", sum(9, 1,2,3,4,5,6,7,8,9));
return 0;
}
2. ·Ç¾Ö²¿Ìø×ª
#include <setjmp.h>
jmp_buf b;
void f()
{
longjmp(b, 1);
}
int main()
{
if(setjmp(b))
printf("World!");
else
{
printf("Hello ");
f();
}
return 0;
}
½á¹û: Hello World!
µ±µ÷ÓÃlongjmpʱ,ÔËÐе½setjmp·µ»ØµÄλÖÃ,²¢°ÑsetjmpµÄ·µ»ØÉèÖÃΪ1
¹ØÓÚ²»Í¬°æ±¾CRTµÄÎÊÌâ
1. ΪʲôÓÃVC2008±àÒëµÄ³ÌÐòÎÞ·¨ÔÚ±ðÈ˵ĻúÆ÷ÉÏÔËÐÐ?
ÒòΪVC2008±àÒëµÄ³ÌÐòʹÓÃÁËmanifest»úÖÆ, ÕâЩ³ÌÐò±ØÐëÒÀÀµÓÚÏà¶ÔÓ¦°æ±¾µÄÔËÐпâ.
Ò»¸ö½â¾ö°ì·¨¾ÍÊÇʹÓþ²Ì¬Á´½Ó, ÕâÑù¾Í²»ÐèÒªÒÀÀµÓÚCRTµÄDLL.
ÁíÒ»°ì·¨Êǽ«ÏàÓ¦°æ±¾µÄÔËÐпâÓë³ÌÐòÒ»Æð·¢²¼¸ø×îÖÕÓû§.
2. Èç¹ûÒ»¸ö³ÌÐòÀïÃæµÄ²»Í¬objÎļþ»òdllÎļþʹÓÃÁ˲»Í¬µÄCRT, »á²»»áÓÐÎÊÌâ?
Èç¹ûÖ»ÓÐobjûÓÐdll, ÕâʱÊǾ²Ì¬Á´½Ó, ²»Í¬µÄobjÔÚ±àÒëʱÓõ½Á˲»Í¬°æ±¾µÄ¾²Ì¬CRT. Ò»°ãÊDz»»á³öÏÖÎÊÌâµÄ. ÒòΪĿ±êÎļþ¶Ô¾²Ì¬¿âÒýÓÃÖ»ÊÇÔÚÄ¿±êÎļþµÄ·ûºÅ±íÖб£ÁôÒ»¸ö¼ÇºÅ, ²»½øÐÐÁ´½Ó, ûÓо²Ì¬¿âµÄ°æ±¾ÐÅÏ¢.
µ«ÊÇÈç¹ûº¬Óв»Í¬°æ±¾µÄdllÎļþ, ÔòÓпÉÄܳöÏÖÎÊÌâ.
Ïà¹ØÎĵµ£º
pythonµÄC¡¢c++À©Õ¹
http://blog.chinaunix.net/u3/110228/showart_2148725.html
pythonµÄÇ¿´ó²»½ö±íÏÖÔÚÆä¹¦ÄÜÉÏ£¬¶øÇÒ»¹±íÏÖÔÚÆäÀ©Õ¹ÄÜÁ¦ÉÏ¡£
ʹÓÃC/C++ºÜÈÝÒ×±àдpythonµÄÄ£¿é£¬À©Õ¹pythonµÄ¹¦ÄÜ¡£
ͬʱ½«ÐÔÄÜÒªÇó±È½Ï¸ßµÄ´úÂëʹÓÃC/C++±àд£¬ÄܸüºÃµÄÃÖ²¹
½Å±¾ÓïÑÔÖ´ÐÐËÙ¶ÈÂýµÄȱÏÝ¡£
1. pythonµÄCÓïÑÔÀ©Õ¹
1.1 ......
×î½üÔÚ×ö³ÌÐòʱÐèҪʹÓÃÒ»¸öÒѾ±àºÃµÄC³ÌÐòÔ´Îļþ£¨ÓÐÍ·Îļþ£©£¬½«Í·Îļþ¼ÓÈëÒªµ÷ÓõÄÔ´ÎļþÖУ¬µ÷ÓÃÏàÓ¦Cº¯Êý£¬±àÒëʱ³öÏÖÈçÏ´íÎó£º
sss.c(3129) : fatal error C1010: unexpected end of file while looking for precompiled header directive
ÔÚÍøÉϲéÁËÏà¹Ø×ÊÁÏ£¬Ëµ²»ÄÜÔÚCÔ´ÎļþÖаüº¬"stdafx.h"Îļþ£¬
ÖªµÀÐèÒªÒ ......
C/C++ÓïÑÔʵÏÖ¶¯Ì¬Êý×é
CÊý×éµÄСÎÊÌâ
ÕâÀï˵µÄ¶¯Ì¬Êý×éÊÇ¿ÉÒÔ¸ù¾ÝÐèÒª¶¯Ì¬Ôö³¤Õ¼ÓÃÄÚ´æµÄÊý×飬±ÈÈç³ÌÐò³õʼ·ÖÅäÁË100¸öÔªËØ£¬¿ÉÊÇÔËÐÐÁËÒ»¶Îʱ¼äºóÇøÇø100¸ö¿Õ¼ä²»ÄÜÂú×ãÁË£¬ÏÖÔÚÐèÒª400¸ö£¬Ôõô°ìÄØ£»Äǿ϶¨ÐèÒªÔÙ¶îÍâ·ÖÅä300¸ö¡£
CÓïÑÔÓÐrealloc()º¯ÊýÀ´½â¾ö¿Õ¼ä ......
Ò»¸öÓÉC/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ³ÌÐòÔËÐÐʱÓɱàÒëÆ÷×Ô¶¯·ÖÅ䣬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£³ÌÐò½áÊøÊ±ÓɱàÒëÆ÷×Ô¶¯ÊÍ·Å¡£
2¡¢¶ÑÇø£¨heap£© — ÔÚÄڴ濪±ÙÁíÒ»¿é´æ´¢ÇøÓò¡£Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿É ......
ubuntuϵÄc/c++»·¾³´î½¨ÊDZȽϼòµ¥,ÒòΪÓÐaptºÍÐÂÁ¢µÃµÄ°ïÖú.
1.
Ê×ÏÈÊÇÅäÖÃgcc,ÔÚubuntu°²×°Íê³ÉÒѾÓÐgccÁË(gccÊÇÓÉGNUÖ®¸¸StallmanËù¿ª·¢µÄlinuxϵıàÒëÆ÷£¬È«³ÆÎªGNU
Compiler Collection£¬ Ŀǰ¿ÉÒÔ±àÒëµÄÓïÑÔ°üÀ¨£ºC, C++, Objective-C, Fortran, Java,
and
Ada.).µ«ÊÇgcc»¹²»ÄܱàÒëÎļþ.ÒòΪȱÉÙһЩͷÎļþ.Ä ......