(Ò»)ÕûÊý·ûºÅµÄÏÝÚå
(¶þ)¸¡µãÊýµÄ±¾ÖÊ
(Èý)¶ÑÕ»µÄÄÚ´æ¹ÜÀí½á¹¹
(ËÄ)·ûºÅ½âÎö
(Îå)¶ÔÆëºÍ×ÜÏß´íÎó
(Áù)º¯ÊýÖ¸Õë
(Æß)Ð麯ÊýµÄʵÏÖ»úÀí
(°Ë)ÒýÓõÄʵÏÖ»úÀí
(¾Å)ÐéÄâ¼Ì³Ð¶ÔÏóµÄÄÚ´æ½á¹¹
(Ê®)»ìºÏ±à³ÌʱµÄ³õʼ»¯Ë³Ðò
(ʮһ)Êý×éºÍÖ¸ÕëµÄÒìͬ
(Ê®¶þ)constÏÞ¶¨µÄ´«µÝÐÔ
(Ê®Èý)Êý¾ÝÀàÐ͵ÄÏÞ¶¨ÐÔ¼ì²é
(Ê®ËÄ)ʹÓÃSTLʱµÄÀàÐÍÏÞÖÆ
(Ê®Îå)µü´úÆ÷×ÔÉíµÄÀàÐÍ
(Ê®Áù)ÔËÐÐʱµÄÀàÐÍÐÅÏ¢
(Ê®Æß)new/deleteÖØÔØ
(Ê®°Ë)ÈçºÎ¿½±´Ò»¸öÎļþ
(Ò»)ÕûÊý·ûºÅµÄÏÝÚå
x
#include
int main(void){
int x=1;
unsigned int y=2;
int b=x
int b2=(x-y<0);
printf("%d,%d ",b,b2);
return 0;
}
ËüÊä³öÊ²Ã´ÄØ£¿
1,0
ÁîÈËÕ𾪣¬²»ÊÇÂð£¬x
(1)x
(2)x-yµÄ½á¹û¼ÆËãµÄʱºò£¬·µ»ØÒ»¸ö0xfffffffe£¬Ëü±»µ±³ÉÎÞ·ûºÅÊý×ÖÀí½â²¢ºÍ0±È½Ï£¬ÏÔÈ»<0²»³ÉÁ¢£¬·µ»Ø0¡£
×ܽáһϣ¬ÕûÊýµÄÔËË㣬¼Ó¼õ³ ......
(Ò»)ÕûÊý·ûºÅµÄÏÝÚå
(¶þ)¸¡µãÊýµÄ±¾ÖÊ
(Èý)¶ÑÕ»µÄÄÚ´æ¹ÜÀí½á¹¹
(ËÄ)·ûºÅ½âÎö
(Îå)¶ÔÆëºÍ×ÜÏß´íÎó
(Áù)º¯ÊýÖ¸Õë
(Æß)Ð麯ÊýµÄʵÏÖ»úÀí
(°Ë)ÒýÓõÄʵÏÖ»úÀí
(¾Å)ÐéÄâ¼Ì³Ð¶ÔÏóµÄÄÚ´æ½á¹¹
(Ê®)»ìºÏ±à³ÌʱµÄ³õʼ»¯Ë³Ðò
(ʮһ)Êý×éºÍÖ¸ÕëµÄÒìͬ
(Ê®¶þ)constÏÞ¶¨µÄ´«µÝÐÔ
(Ê®Èý)Êý¾ÝÀàÐ͵ÄÏÞ¶¨ÐÔ¼ì²é
(Ê®ËÄ)ʹÓÃSTLʱµÄÀàÐÍÏÞÖÆ
(Ê®Îå)µü´úÆ÷×ÔÉíµÄÀàÐÍ
(Ê®Áù)ÔËÐÐʱµÄÀàÐÍÐÅÏ¢
(Ê®Æß)new/deleteÖØÔØ
(Ê®°Ë)ÈçºÎ¿½±´Ò»¸öÎļþ
(Ò»)ÕûÊý·ûºÅµÄÏÝÚå
x
#include
int main(void){
int x=1;
unsigned int y=2;
int b=x
int b2=(x-y<0);
printf("%d,%d ",b,b2);
return 0;
}
ËüÊä³öÊ²Ã´ÄØ£¿
1,0
ÁîÈËÕ𾪣¬²»ÊÇÂð£¬x
(1)x
(2)x-yµÄ½á¹û¼ÆËãµÄʱºò£¬·µ»ØÒ»¸ö0xfffffffe£¬Ëü±»µ±³ÉÎÞ·ûºÅÊý×ÖÀí½â²¢ºÍ0±È½Ï£¬ÏÔÈ»<0²»³ÉÁ¢£¬·µ»Ø0¡£
×ܽáһϣ¬ÕûÊýµÄÔËË㣬¼Ó¼õ³ ......
1. ´´½¨ÀàÐÍΪWin-32 Static LibraryµÄ¹¤³Ì£º
£¨1£©Ìîд¹¤³ÌÃû³Æ£¬¹¤³ÌÃû³Æ²»ÓëÒѾ´æÔÚ¿âÃûÏàͬ¼´¿É£¬Èçmylib£»
£¨2£©Ä¬ÈÏÅäÖã¬Ö±½Óµã»÷Íê³É¡¢È·¶¨£»
£¨3£©ÔÚÕâ¸ö¹¤³ÌÏÂн¨Ò»¸öÀàÐÍΪC/C++ Header FileµÄÎļþ£¬ÎļþÃûΪliwenying.h£»
£¨4£©ÔÚliwenying.hÏÂÃæÊäÈë´úÂë
#ifndef LIWENYING_H
#define LIWENYING_H
extern "C" int test(char *string); //¸ù¾Ýʵ¼ÊµÄº¯Êý¶¨Òå
#endif
£¨5£©½Ó×ÅÔÚÕâ¸ö¹¤³ÌÏ´´½¨Ò»¸öÀàÐÍΪC++ Source FileµÄÎļþ£¬ÎļþÃûΪtest.cpp£»
#include “liwenying.h”
int test(char string[])
{
int num=0;
&n ......
²Ëµ¥ºÍ¼ÓËÙ¼üÃÜÇеØÁªÏµÔÚÒ»Æð¡£ÕâÁ½ÖÖ×ÊÔ´ÀàÐÍÁªÊÖÐ×÷£¬ÈÃÓû§ÄܸüÈÝÒ×µØÍê³ÉÈÎÎñ¡£´ó¼Ò¶¼ÖªµÀ²Ëµ¥ÊÇʲô——ËüÊÇ·Ö²ãÃüÁî½á¹¹µÄÎïÀí±íʾ¡£¼ÓËÙ¼üÌṩ¸Ã½á¹¹µÄ¿ì½Ý·½Ê½£¬ÒÔÌá¸ßÓû§²Ù×÷µÄËÙ¶È¡£ÀýÈ磬Ҫ´´½¨Ò»¸öÐÂÎļþ£¬Í¨³£ÓÃFile | New£¨Îļþ|н¨£©ÃüÁî»òCTRL-N¼ÓËÙ¼ü£¬Á½ÖÖ·½·¨¿ÉÒÔ²úÉúÏàͬµÄ½á¹û¡£
Visual C ½«²Ëµ¥ºÍ¼ÓËÙ¼ü×÷ΪÁ½ÖÖ²»Í¬µÄ×ÊÔ´´æ´¢¡£Í¼3.5ÏÔʾÁËʾÀýÓ¦ÓóÌÐòµÄÖ÷²Ëµ¥ºÍÏàÓ¦µÄ¼ÓËÙ¼ü¡£×¢ÒâÓÐÒ»µãºÜÓÐÒâ˼£¬Á½ÖÖ×ÊԴʹÓÃÏàͬµÄÃû³ÆIDR_MAINFRAME¡£Ó¦¸Ã¼ÇסÕâÒ»µã£¬ÒòΪ¸ÃÃû³ÆÊǽ«Á½ÖÖ×ÊÔ´£¨²Ëµ¥ºÍ¼ÓËÙ¼ü£©Á´½ÓÔÚÒ»ÆðµÄ×ÊÔ´Ãû¡£
ÈÃÎÒÃÇ¿´¿´²Ëµ¥ºÍ¼ÓËÙ¼üÊÇÔõÑùÐ×÷µÄ¡£½«ÐµÄÌõÄ¿Ìí¼Óµ½ÏÖÓеļÓËÙ¼ü×ÊÔ´ÖУ¬ÕâÒ»µãºÜÈÝÒס£ÔÚAccelerator£¨¼ÓËÙ¼ü£©´°¿ÚÖÐÓÒ»÷£¬È»ºó´ÓÉÏÏÂÎIJ˵¥ÖÐÑ¡ÔñNew Accelerator£¨Ð¼ÓËÙ¼ü£©¡£¾Í»á¿´µ½Accel Properties£¨¼ÓËÙ¼üÊôÐÔ£©¶Ô»°¿ò£¬ÈçÏÂͼËùʾ¡£
´Ëʱ£¬ÐèÒª´ÓÏÂÀÁбí¿òÖÐÑ¡ÔñÒ»¸öID¡£Menu IDͨ³£Ê¹ÓÃËùÐè²Ëµ¥²ã´ÎµÄ×éºÏÀ´µÃµ½Ãû³Æ£¬È»ºóÔÚÃû³ÆÇ°¼ÓÉÏ×Ö·ûID¡£ÀýÈ磬Èç¹ûÏëΪView | Toolbar£¨ÊÓͼ|¹¤¾ßÌõ£©ÃüÁî´´½¨Ò»¸ö¼ÓËÙ¼ü£¨ÎÒÔÚʵÀýÖоÍÊÇÕâÑù×öµÄ£©£¬¾ÍÓ¦ÔÚID×Ö¶ÎÖÐÑ¡ÔñID_VIEW_TOOLBAR¡£Ò²¿ÉÒÔÔÚASCIIÂëºÍ ......
ÒÔÏ´úÂëÑÝʾÈçºÎÓÃCÀ´Ä£Äâ¶à̬¡£gcc°æ±¾£º3.4.4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#ifndef class
#define class struct
#endif
#ifndef private
#define private
#endif
#ifndef public
#define public
#endif
#ifndef protected
#define protected
#endif
#ifndef bool
#define bool int
#endif
#ifndef true
#define true 1
#endif
#ifndef false
#define false 0
#endif
class Parent{
//private members
private class Parent *this;
private size_t len;
//public memb ......
×î½ü¹¤×÷²»½ô£¬³é¿Õ¿´ÁËÏÂC¡¢C++µÄÖ¸Õ룬·¢ÏÖÁËһЩƽʱûעÒâµ½µÄÖ¸ÕëÓ÷¨ºÍÎÊÌâ¡£
1¡¢Ö¸ÕëÒýÓÃ
void func1£¨MYCLASS* &pBuildingElement£©£»
Õ§Ò»¿´£¬¹Ö¹ÖµÄ£¬¿´ÁËϽâÊÍ£¬Ï¸ÏëһϺÍÖ¸ÕëµÄÖ¸ÕëÀàËÆ£º
void func1£¨MYCLASS** pBuildingElement£©£»
¿´ÏÂÃæµÄÀý×Ó£º
...
MyClass* p = new MyClass;
func1(p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass* pMyClass)
{
...
pMyClass = //ÆäËû¶ÔÏóµÄÖ¸Õë
...
}
µÚ¶þÌõÓï¾äfunc1(p);ÔÚº¯Êý¹ý³ÌÖÐÖ»ÐÞ¸ÄÁËpMyClassµÄÖµ¡£²¢Ã»ÓÐÐ޸ĵ÷ÓÃÕߵıäÁ¿pµÄÖµ¡£¼ÙÉèÒªÔÚfunc1ÖÐÐÞ¸ÄpµÄÖµ£¬ÏÖÔÚ¾ÍÓÐÁ½ÖÖ·½·¨£ºÒ»ÊÇÀûÓÃÖ¸ÕëµÄÖ¸Õ룬¶þÊÇÀûÓÃÖ¸ÕëµÄÒýÓá£
ÒÔÉÏ´úÂë¿ÉÐÞ¸ÄΪ£º
//Ö¸ÕëµÄÖ¸Õë
...
MyClass* p = NULL;
func1(&p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass** pMyClass)
{
...
*pMyClass = new MyClass;
...
}
//Ö¸ÕëµÄÒýÓÃ
...
MyClass* p = NULL;
func1(p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass* &pMyClass)
{
...
pMyClass = new MyClass;
...
}
Æäʵ£¬ËüºÍÇ°ÃæÖ¸ÕëµÄÖ¸ÕëÊÇÒ»ÂëÊ£¬Ö»ÊÇÓï·¨ÓÐËù²»Í¬¡£´«µÝµÄʱºò²»Óô«pµÄµØÖ·£¬¶øÊÇÖ±½Ó´«p±¾Éí¡£
ÖÁÓ ......
×î½ü¹¤×÷²»½ô£¬³é¿Õ¿´ÁËÏÂC¡¢C++µÄÖ¸Õ룬·¢ÏÖÁËһЩƽʱûעÒâµ½µÄÖ¸ÕëÓ÷¨ºÍÎÊÌâ¡£
1¡¢Ö¸ÕëÒýÓÃ
void func1£¨MYCLASS* &pBuildingElement£©£»
Õ§Ò»¿´£¬¹Ö¹ÖµÄ£¬¿´ÁËϽâÊÍ£¬Ï¸ÏëһϺÍÖ¸ÕëµÄÖ¸ÕëÀàËÆ£º
void func1£¨MYCLASS** pBuildingElement£©£»
¿´ÏÂÃæµÄÀý×Ó£º
...
MyClass* p = new MyClass;
func1(p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass* pMyClass)
{
...
pMyClass = //ÆäËû¶ÔÏóµÄÖ¸Õë
...
}
µÚ¶þÌõÓï¾äfunc1(p);ÔÚº¯Êý¹ý³ÌÖÐÖ»ÐÞ¸ÄÁËpMyClassµÄÖµ¡£²¢Ã»ÓÐÐ޸ĵ÷ÓÃÕߵıäÁ¿pµÄÖµ¡£¼ÙÉèÒªÔÚfunc1ÖÐÐÞ¸ÄpµÄÖµ£¬ÏÖÔÚ¾ÍÓÐÁ½ÖÖ·½·¨£ºÒ»ÊÇÀûÓÃÖ¸ÕëµÄÖ¸Õ룬¶þÊÇÀûÓÃÖ¸ÕëµÄÒýÓá£
ÒÔÉÏ´úÂë¿ÉÐÞ¸ÄΪ£º
//Ö¸ÕëµÄÖ¸Õë
...
MyClass* p = NULL;
func1(&p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass** pMyClass)
{
...
*pMyClass = new MyClass;
...
}
//Ö¸ÕëµÄÒýÓÃ
...
MyClass* p = NULL;
func1(p);
...
func1µÄ¶¨ÒåÈçÏ£º
void func1(MyClass* &pMyClass)
{
...
pMyClass = new MyClass;
...
}
Æäʵ£¬ËüºÍÇ°ÃæÖ¸ÕëµÄÖ¸ÕëÊÇÒ»ÂëÊ£¬Ö»ÊÇÓï·¨ÓÐËù²»Í¬¡£´«µÝµÄʱºò²»Óô«pµÄµØÖ·£¬¶øÊÇÖ±½Ó´«p±¾Éí¡£
ÖÁÓ ......
ÓÃC++µ÷ÓÃCµÄ¿âº¯Êý
C++µ÷ÓÃCµÄ¿âº¯Êýʱ£¬Èç¹ûÍ·Îļþ¶¨ÒåµÃ²»Ç¡µ±£¬¿ÉÄÜ»á³öÏÖÃ÷Ã÷ijº¯ÊýÔÚobjÎļþÖдæÔÚ£¬µ«ÊÇÈ´·¢ÉúÁ´½Óʧ°ÜµÄÇé¿ö£¬³öÏÖÈçÏ´íÎó:
undefined reference to 'xxx'
³öÏÖÎÊÌâµÄÔÒòÊÇc¿âº¯Êý±àÒë³ÉobjÎļþʱ¶Ôº¯Êý·ûºÅµÄ´¦ÀíºÍC++²»Í¬¡£ÒòΪC++º¯ÊýÖ§³ÖÖØÔØ£¬ËùÒÔº¯Êý·ûºÅµÄ´¦ÀíÒª¸ü¸´ÔÓһЩ£¬cÍùÍù²»×÷ÐÞÊΡ£
ÀýÈçÓк¯Êý£º
/* dofunc.c */
#include <stdio.h>
int dofunc()
{
printf("dofunc\n");
}
ʹÓÃgcc±àÒë³Éobjºó
gcc -c dofunc.c
#Éú³É dofunc.o
objdump -x dofunc.o
[ 0](sec -2)(fl 0x00)(ty 0)(scl 103) (nx 1) 0x00000000 dofunc.c
File
[ 2](sec 1)(fl 0x00)(ty 20)(scl 2) (nx 1) 0x00000000 _dofunc
AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
[ 4](sec 1)(fl 0x00)(ty 0) ......
ÓÃC++µ÷ÓÃCµÄ¿âº¯Êý
C++µ÷ÓÃCµÄ¿âº¯Êýʱ£¬Èç¹ûÍ·Îļþ¶¨ÒåµÃ²»Ç¡µ±£¬¿ÉÄÜ»á³öÏÖÃ÷Ã÷ijº¯ÊýÔÚobjÎļþÖдæÔÚ£¬µ«ÊÇÈ´·¢ÉúÁ´½Óʧ°ÜµÄÇé¿ö£¬³öÏÖÈçÏ´íÎó:
undefined reference to 'xxx'
³öÏÖÎÊÌâµÄÔÒòÊÇc¿âº¯Êý±àÒë³ÉobjÎļþʱ¶Ôº¯Êý·ûºÅµÄ´¦ÀíºÍC++²»Í¬¡£ÒòΪC++º¯ÊýÖ§³ÖÖØÔØ£¬ËùÒÔº¯Êý·ûºÅµÄ´¦ÀíÒª¸ü¸´ÔÓһЩ£¬cÍùÍù²»×÷ÐÞÊΡ£
ÀýÈçÓк¯Êý£º
/* dofunc.c */
#include <stdio.h>
int dofunc()
{
printf("dofunc\n");
}
ʹÓÃgcc±àÒë³Éobjºó
gcc -c dofunc.c
#Éú³É dofunc.o
objdump -x dofunc.o
[ 0](sec -2)(fl 0x00)(ty 0)(scl 103) (nx 1) 0x00000000 dofunc.c
File
[ 2](sec 1)(fl 0x00)(ty 20)(scl 2) (nx 1) 0x00000000 _dofunc
AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
[ 4](sec 1)(fl 0x00)(ty 0) ......