C#——C#ÖÐC/C++³ÌÐòԱҪעÒâµÄÎÊÌâ
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃǵÄÀàµÄÃû×ÖÀ´·¢·ÃÎʾ²Ì¬³ÉÔ±¡£
4¡¢C#ÅÉÉúÀàÖУ¬Ã»ÓÐ˽ÓлòÕß±£»¤¼Ì³Ð¡£¹ØÓÚÕâÒ»µãC++³ÌÐòÔ±×¢ÒâÁË¡£
5¡¢C#¶à̬ÐÔ,C++³ÌÐòÔ±×¢Òâ,±ØÐëÏÔʽÓùؼü×Ôoverride±ê¼ÇÖØÐ¶¨ÒåÁËÐé·½·¨µÄ·½·¨ÉùÃ÷¡£
6¡¢³éÏóÀàÓëÃÜ·âÀ࣬³éÏóÀàÓÃÀ´±»ÅÉÉú£¬²¢ÎªÆä×ÓÀàÌṩ×ñÑÄ£°æ£»¶øÃÜ·âÀàÔòÍêÈ«²»ÔÊÐí±»ÅÉÉú¡£³éÏóÀà¹Ø¼ü×ÖÊÇabstract£»ÃÜ·âÀà¹Ø¼ü×ÖΪsealed
7¡¢C#ÖнṹÌåµÄ¶¨ÒåÓëC++µÄ·Ç³£²»Í¬¡£ÔÚC++ÖУ¬½á¹¹ÌåÓëÀà³ýÁËĬÈϵĿɼûÐÔ£¨Ò»¸öÊÇpublic£¬Ò»¸öÊÇprivae£©Ö®ÍâÍêȫһÑù¡£¶øÔÚC#ÖУ¬½á¹¹ÌåÊÇÖµÀàÐÍ£¬¶øÀàÊÇÒýÓÃÀàÐÍ¡£
8¡¢C#ÖÐίÍÐÏ൱ÓÚC++Öеķ½·¨Ö¸Õ룬¹Ø¼ü×ÖΪdelegate¡£
9¡¢.NETÓÃÀ´´´½¨ÍøÒ³³ÌÐòµÄ¼¼ÊõÊÇASP.NET2.0£¬ËüÔÚÃüÃû¿Õ¼äSystem.WebºÍSystem.Web.UIÖÐΪ´´½¨ÍøÒ³³ÌÐòÌṩÁËÒ»Ì׷ḻµÄÀàÐÍ¡£
10¡¢C#Ïß³ÌÈýÖÖͬ²½»úÖÆ£º»¥ËøÀࣨInterlocked£©£¬C# lockÓï¾ä£¬ÒÔ¼°¼à¿ØÆ÷¶ÔÏó£¨Monitor class£©
11¡¢C#ÖÐҪʹÓÃÖµ±äÁ¿Ö®Ç°£¬ÐèÒªÊÂÏÈÉùÃ÷£¬²¢ÇÒÒªÔÚʹÓÃ֮ǰÏÈÉèÖóõʼֵ£¬ÓÀÔ¶²»¿ÉΪnull£»ÒýÓÃÀàÐͱäÁ¿£¬´æ´¢ÔÚheapÖУ¬²»ÔÊÐíÔÚ³õʼ»¯Ö®Ç°Ê¹ÓÃÕâ¸ö±äÁ¿¡£
12¡¢C#ÖÐswitch-caseÓï¾äÓëC/C++²»Í¬µØ·½ÔÚÓÚC#Öв»ÔÊÐícaseÅжÏʽ“silent fall through”¡£Ò²¾ÍÊÇ˵£¬µ±ÕÒµ½·ûºÏcase±ê¼ÇºóµÄ³£Êýºó£¬Ö»»áÖ´ÐдËcaseÇø¿éÖеijÌÐò´úÂ룬²»»áÔÙÖ´ÐÐÆäËûµÄcaseÅжÏʽ½øÐÐÅжϵ͝×÷¡£
13¡¢²ÎÊý´«Èë»úÖÆ
14¡¢C#ÖÐʹÓÃÊý×éҪעÒâÁ½¼þÊÂÇ飺Êý×éÃû³Æ²»¿ÉÖÃÓÚÖÐÀ¨ºÅǰ·½£»ÉùÃ÷Êý×é±äÁ¿Ê±£¬²»Äܹ»Ö¸¶¨Êý×éµÄ´óС¡£
15¡¢Àà
C#µÄ³ÉÔ±·ÃÎÊÐÞÊηû°üº¬ÒÔϼ¸ÖÖ£º
Public
ÈκÎÍⲿµÄÀà¶¼¿ÉÒÔ²»ÊÜÏÞÖÆµÄ´æÈ¡Õâ¸öÀàµÄ·½·¨ºÍÊý¾Ý³ÉÔ±¡£
Private
ÀàÖеÄËùÓз½·¨ÓëÊý¾Ý³ÉÔ±Ö»ÄÜÔÚ´ËÀàÖÐʹÓã¬ÍⲿÎÞ·¨´æÈ¡¡£
Protected
³ýÁËÈñ¾ÉíµÄÀà¿ÉÒÔʹÓÃÖ®Í⣬Èκμ̳Ð×Ô´ËÀàµÄ×ÓÀà¶¼¿ÉÒÔ´æÈ¡¡£
Internal
ÔÚͬһ¸ö.NET Assembly£¨Application»òLibrary£¬Ò²¾ÍÊÇ˵£¬Í¬Ò»¸öEXE»òͬһ¸öDLLÖеijÉÔ±£©Öж¼¿ÉÒÔ´æÈ¡¡£
Protected internal
Ö»ÏÞ¶¨Ä¿Ç°µÄÏîÄ¿£¬»òÊǼ̳Ð×Ô´ËÀàµÄ³ÉÔ±²Å¿ÉÒÔ´æÈ¡¡£
½á¹¹ÓëÀàµÄ²îÒ죺
16¡¢ÖµÀàÐÍÓëÒýÓÃÀàÐÍÖ®¼äµÄ»¥»
Ïà¹ØÎĵµ£º
ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡ ......
ǰЩÌ죬±à³ÌÐòÊÇÓõ½Á˺ܾÃÒÔǰдµÄC³ÌÐò£¬Ïë°ÑÀïÃæµÄº¯ÊýÀûÓÃÆðÀ´£¬Á¬½Ó·¢ÏÖ³öÏÖÁËÕÒ²»µ½¾ßÌ庯ÊýµÄ´íÎó£º
ÒÔÏÂÊǼÙÉè¾ÉµÄC³ÌÐò¿â
CµÄÍ·Îļþ
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endifCµÄÔ´Îļþ
/*-----------c.c--------------*/
int add(int x, in ......
ÓÉÓÚ³ÌÐòÔËÐÐʱռÓõÄÄÚ´æ¹ý´ó£¬ËùÒÔÏë°ì·¨¸ø³ÌÐòÊÝÉí¡£
ÔÚµ÷ÊÔÖз¢ÏֽṹÌåÕ¼ÓõÄsize¾¹È»ºÍÔ¤ÏëµÄ²»Ò»Ñù£¬ÔÀ´……
¿´¿´ÏÂÃæ½²µÄ°É£¬¿Ï¶¨»á²»Í÷´Ë¿´Å¶£¡
1,±ÈÈç:
struct{
short a1;
short a2;
short a3;
}A;
struct{
......
// Õª×Ô£ºWikipedia.org
CÓïÑԵıê×¼ÎÄÎļþÒªÇóÁËÒ»¸öÆ½Ì¨ÒÆÖ²CÓïÑÔµÄʱºòÖÁÉÙҪʵÏÖµÄһЩ¹¦Äܺͷâ×°µÄ¼¯ºÏ£¬³ÆÎª“±ê×¼¿â”£¬±ê×¼¿âµÄÉùÃ÷Í·²¿Í¨¹ýÔ¤´¦ÀíÆ÷ÃüÁî#include½øÐÐÒýÓá£
ÔÚC89±ê×¼ÖУº
01. <assert.h>
02. <ctype.h>
&nbs ......