C#…谁能告诉我extern的用法啊? C#…谁能告诉我extern的用法啊?

extern\u7684\u7528\u6cd5\u5728\u8fd9\u91cc\u6709\u70b9\u5f04\u4e0d\u901a

UART_T uart; \u5b9a\u4e49\u7ed3\u6784\u4f53\u53d8\u91cfuart, \u4f46\u662f\u8fd9\u4e2a\u5b9a\u4e49\u4e0d\u80fd\u51fa\u73b0\u5728.h\u4e2d,\u56e0\u4e3a.h\u53ef\u80fd\u8981\u88ab\u591a\u4e2a.c\u6587\u4ef6include,\u4ece\u800c\u4ea7\u751f\u91cd\u590d\u5b9a\u4e49\u9519\u8bef.\u4f46\u662f\u5982\u4f55\u5728\u540c\u65f6\u5728\u5176\u4ed6\u6587\u4ef6\u4e2d\u4f7f\u7528uart\u5462? \u5c31\u4f7f\u7528extern \u6765\u58f0\u660e,\u8fd9\u6837\u522b\u7684\u6587\u4ef6\u53ef\u4ee5\u770b\u5230\u8fd9\u4e2a\u53d8\u91cf\u58f0\u660e,\u7f16\u8bd1\u5c31\u8fc7\u4e86. uart\u53ef\u4ee5\u5728.c\u6587\u4ef6\u4e2d\u5b9a\u4e49,\u8fd9\u6837\u94fe\u63a5\u7684\u65f6\u5019\u5c31\u90fd\u80fd\u627e\u5230\u8be5\u53d8\u91cf\u4e86.

1 \u57fa\u672c\u89e3\u91ca
extern\u53ef\u4ee5\u7f6e\u4e8e\u53d8\u91cf\u6216\u8005\u51fd\u6570\u524d\uff0c\u4ee5\u6807\u793a\u53d8\u91cf\u6216\u8005\u51fd\u6570\u7684\u5b9a\u4e49\u5728\u522b\u7684\u6587\u4ef6\u4e2d\uff0c\u63d0\u793a\u7f16\u8bd1\u5668\u9047\u5230\u6b64\u53d8\u91cf\u548c\u51fd\u6570\u65f6\u5728\u5176\u4ed6\u6a21\u5757\u4e2d\u5bfb\u627e\u5176\u5b9a\u4e49\u3002
\u53e6\u5916\uff0cextern\u4e5f\u53ef\u7528\u6765\u8fdb\u884c\u94fe\u63a5\u6307\u5b9a\u3002
\u91cc\u9762\u662fC\u7684\u4f8b\u5b50\uff0c\u4f46\u5404\u79cd\u8bed\u8a00\u7684\u5173\u952e\u5b57\u542b\u4e49\u57fa\u672c\u4e00\u81f4

1.extern常用来声明在外部的非托管代码,例子:
[DllImport("User32.dll")]
public static extern int MessageBox(int h, string m, string c, int type);

2.extern也可以用来引用外部别名,例如,可能必须在同一应用程序中使用程序集的两个或多个版本(它们里面的很多类都由相同的完全限定名)。通过使用外部程序集别名,可以将来自每个程序集的命名空间包装在由别名命名的根级别命名空间中,从而使这些命名空间可以在同一文件中使用。

若要引用两个具有相同完全限定类型名的程序集,必须在命令提示符下指定别名,如下所示:

/r:GridV1=grid.dll
/r:GridV2=grid20.dll

这将创建外部别名 GridV1 和 GridV2。若要从程序中使用这些别名,请使用 extern 关键字引用它们。例如:

extern alias GridV1;
extern alias GridV2;

class Test
{
GridV1::N.A a;
GridV1::N.B b1;
GridV2::N.B b2;
GridV2::N.C c;
}

该程序声明存在 extern 别名 GridV1 和 GridV2,但这些别名的实际定义在该程序的外部。同名的 N.B 类现在可分别通过 X.N.B 和 Y.N.B 引用,或者使用命名空间别名限定符通过 X::N.B 和 Y::N.B 引用。如果没有为程序声明的 extern 别名提供外部定义,则会发生错误。

参考资料:msdn

  • c鐨勬纭彂闊
    绛旓細c鍦ㄨ嫳鏂囧瓧姣嶄腑璇讳綔鈥 [si:]鈥濄傗渃鈥濇槸鑻辫瀛楁瘝涓殑绗笁涓瓧姣嶏紝澶у啓涓衡C鈥濓紝灏忓啓涓衡渃鈥濄傚瓧姣嶇殑鍚箟锛1銆佸湪鏁板鍙婅绠楁満绉戝涓紝琛ㄧず鍗佸叚杩涘埗鐨12銆2銆佸湪鍖栧涓紝琛ㄧず纰崇殑鍖栧绗﹀彿銆3銆佸湪涔愮悊涓紝琛ㄧず闊抽樁涓殑C闊炽4銆佸湪鍥介檯鍗曚綅鍒剁殑鐢佃嵎涓〃绀哄簱浠戙5銆佸湪钀ュ吇瀛︿腑锛岃〃绀虹淮鐢熺礌C銆6銆佸湪鐢...
  • c鐨勬剰鎬濇槸鎬庝箞鏍风殑?
    绛旓細c鐨勬剰鎬濓細1銆佸湪鍖栧涓紝琛ㄧず纰崇殑鍖栧绗﹀彿銆2銆佸湪涔愮悊涓紝琛ㄧず锛氶煶闃朵腑鐨C闊筹紝璋冨彿涓簬C闊冲紑濮嬬殑闊充箰鐨凜澶ц皟鍙奀灏忚皟锛屾媿瀛愯鍙蜂腑鐨4/4鎷嶅瓙銆3銆佸湪缃楅┈鏁板瓧涓紝琛ㄧず100銆4銆佸湪鍥介檯鍗曚綅鍒朵腑锛岃〃绀虹數鑽烽噺鐨勫崟浣嶁滃簱浠戔濄5銆佸湪璁$畻鏈虹瀛︿腑锛屾湁C璇█銆丆++銆丆#銆丱bjective-C绛夈6銆佸湪钀ュ吇瀛︿腑锛岃〃绀...
  • c琛ㄧず鐨勪笁绉嶆剰涔
    绛旓細C鏈変笁绉嶅惈涔:纰冲厓绱犮佷竴涓⒊鍘熷瓙銆侀噾鍒氱煶(鎴栬呯煶澧)銆傜⒊锛圕锛夆叄A鏃忓厓绱犮傚彲褰㈡垚绉嶇被绻佸鐨勬湁鏈哄寲鍚堢墿锛岃繕鑳藉舰鎴愪竴绯诲垪鏃犳満鍖栧悎鐗┿傚浗闄呯函绮逛笌搴旂敤鍖栧鑱斿悎浼1961骞村皢12C=12纭畾涓虹浉瀵瑰師瀛愯川閲忕殑鐩稿鏍囧噯銆傚ぉ鐒剁⒊鍖栧悎鐗╀腑12C鍗98.892%锛堝師瀛愬垎鏁帮級銆13C鍗1.108%锛堝師瀛愬垎鏁帮級銆14C鏄湪瀹囧畽灏勭嚎鐨勫奖鍝...
  • c鍦ㄧ埍鎯呯殑鍚箟鏄粈涔
    绛旓細C鎸囩殑鏄幇鍦ㄦ祦琛岀殑C鍨嬬埍鎯呰銆 C鍨嬬埍鎯呰 鈥淐鍨嬬埍鎯呰鈥濇寚鐨勬槸瀵圭幇浠g埍鎯呭叧涓绉嶆柊鐨勫畾涔夈傚湪鐖辨儏涓,鏈夎繘鏈夐銆佺壍鎵嬪垎鎵嬬殑寰幆,宸蹭笉鍐嶆槸涓█濂囬鏅,鑰屸滄湁濮嬫湁缁堚,鍦ㄢ淐鍨嬬埍鎯呰鈥濅腑鏈変簡宕柊鐨勫畾涔夆斺旀湁寮濮,灏卞繀鏈夌粓浜嗕箣鏃躲 瀹冪殑鏈澶х壒鐐瑰湪浜庝汉浠笉鍐嶅皢闈掓槬鑰楁崯鍦ㄤ笉鑹叧绯讳笂銆 C鍨嬩汉鐢熷彇浠d簡绾垮瀷...
  • c鏄粈涔?
    绛旓細c鏄瓧姣嶇鍙枫C锛堝ぇ鍐欙級 銆乧锛堝皬鍐欙級鏄嫳鏂囧瓧姣嶉『鏁扮涓変釜锛屼縿璇瓧姣嶉『鏁扮19涓備緥濡傦細鑻辫鍗曡瘝cloud鍜屸滆嫃鑱斺濈殑淇勮缂╁啓小小小袪鐨勭涓涓瓧姣嶅氨鏄痗銆傝捣婧愶細锛1锛夊瓧姣岰鐨勪骇鐢熷彲鑳芥槸鐢变簬涓涓姇鎺锋鐨勭鍙凤紝鍍忓湪鍙ゅ焹鍙婄殑璞″舰鏂囧瓧閲岋紝骞跺緢鏃╁嚭鐜板湪闂棌鐨勪功闈㈠綋涓-澶х害鍦ㄥ叕鍏冨墠1500骞寸殑瑗垮鍗婂矝銆傦紙...
  • c鏄粈涔堟剰鎬濇暟瀛
    绛旓細C鏄暟瀛︿腑鐨勪竴绉嶅父鏁帮紝甯稿嚭鐜板湪鍚勭寮忓瓙涓傚叾浠h〃鐨勬槸涓涓浐瀹氱殑鏁板硷紝閫氬父鐢ㄦ潵琛ㄧず鏌愮鐗瑰畾鐨勭墿鐞嗛噺鎴栬呮暟瀛﹀父閲忋侰鐨勬剰涔夊湪涓嶅悓鐨勪笂涓嬫枃涓湁鎵涓嶅悓锛屾瘮濡侰鍙兘浠h〃鍏夐燂紝鍦嗗懆鐜囨垨鑰呭叾浠栨暟瀛︿笂鐨勫父閲忋傚湪鏁板涓婏紝C浠h〃浜嗛渶瑕佺敤浣滆绠楀熀纭鐨勪竴浜涢噸瑕佹暟鍊硷紝鍥犳涓嶅悓鐨凜鍊艰骞挎硾搴旂敤浜庡悇绉嶆暟瀛﹀垎鏀腑銆傚湪...
  • c鍦ㄥ寲瀛︿腑鎸囦粈涔堟剰鎬
    绛旓細C鍦ㄥ寲瀛︿腑鏈変袱绉嶅惈涔夛細1銆佽〃绀烘祿搴︼紝鍗曚綅涓簃ol/L锛岃绠楀紡涓猴細C=n/V. C=1000蟻蠅/M銆傚惈涔夛細浠1鍗囨憾娑蹭腑鎵鍚憾璐ㄧ殑鎽╁皵鏁拌〃绀虹殑娴撳害銆備互鍗曚綅浣撶Н閲屾墍鍚憾璐ㄧ殑鐗╄川鐨勯噺锛堟懇灏旀暟锛夋潵琛ㄧず婧舵恫缁勬垚鐨勭墿鐞嗛噺锛屽彨浣滆婧惰川鐨勬懇灏旀祿搴︼紝鍙堢О璇ユ憾璐ㄧ墿璐ㄧ殑閲忔祿搴︺傛憾璐ㄥ惈閲忚秺澶氾紝娴撳害瓒婂ぇ銆傛祿搴﹀彲浠ョ敤涓瀹...
  • c鐨勫ぇ鍐欏瓧姣嶆槸浠涔?
    绛旓細c鐨勫ぇ鍐欏瓧姣嶆槸C銆傚崰鍥涚嚎鏍肩殑涓牸锛屾敞鎰忚鐣欏嚭涓涓己鍙o紝涓嶈灏佷綇銆26涓瓧姣嶈嫳璇ぇ灏忓啓鍒嗗埆涓篈a銆丅b銆丆c銆丏d銆丒e銆丗f銆丟g銆丠h銆両i銆丣j銆並k銆丩l銆丮m銆丯n銆丱o銆丳p銆丵q銆丷r銆丼s銆乀t銆乁u銆乂v銆乄w銆乆x銆乊y銆乑z銆備功鍐欒嫳璇瓧姣嶆椂瑕佹寜鐓у瓧姣嶇殑绗旂敾鍜屽瓧姣嶅湪涓変釜鏍间腑鎵鍗犳嵁鐨勪綅缃功鍐欙紝鍚屾椂姣忎釜瀛楁瘝閮...
  • C鐨勫惈涔夋槸浠涔?
    绛旓細鏁板绗﹀彿c鍙充笂瑙掓槸1鍙充笅瑙掓槸4鐨勬剰鎬濇槸鏁板涓殑缁勫悎锛屽彸涓嬭鐨4琛ㄧず鎬讳綋涓暟锛屽彸涓婅鐨1琛ㄧず鎶藉彇涓暟锛屼笖浠4涓噷闈㈡娊鍙栦竴涓紝C¹₄=4梅1=4銆傜粍鍚堬細涓鑸湴锛屼粠n涓笉鍚岀殑鍏冪礌涓紝浠诲彇m锛坢鈮锛変釜鍏冪礌涓轰竴缁勶紝鍙綔浠巒涓笉鍚屽厓绱犱腑鍙栧嚭m涓厓绱犵殑涓涓粍鍚堛傛墍鏈夎繖鏍风殑缁勫悎鐨勬绘暟...
  • c鏄粈涔堟剰鎬濈殑缂╁啓?
    绛旓細c鏄粈涔堟剰鎬濈殑缂╁啓1 C鏄痗ell鑻辫鍚嶇О鐨勭畝绉帮紝鎰忔濇槸缁嗚優銆傝瘝姹囪В鏋愶細cell 鍩烘湰璇嶆眹 鑻 [sel] 缇 [sel]n. 鍗曚汉鐗㈡埧锛涘皬鎴块棿锛涚粏鑳烇紱铚傛埧鐨勫发瀹わ紱鐢垫睜锛涙斂娌诲皬缁勶紱(璁$畻鏈虹數瀛愯〃鏍肩殑)鍗曞厓鏍硷紱鎵嬫満 The prisoner was locked in a cell.閭e洑鐘鍏冲湪鍗曚汉鐗㈡埧鍐呫俤iseased cell 鍙戠敓鐥呭彉鐨勭粏鑳 d...
  • 扩展阅读:c++和java哪个好就业 ... c#处理json ... c#编程软件手机版 ... c#判断 ... c#依赖注入 ... c#和java哪个前景好 ... c#有哪些电子书籍 ... c++ extern指针用法 ... c#获取textbox的值 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网