1樓:匿名使用者
弱型別語言記憶體佈局上一般是個union結構,並且要包含一個型別欄位,因為計算機底層還是要知道明確的型別資訊。
因為包含型別資訊,所以在**的上下文中,可能會進行隱含的型別轉換,比如把字串轉整型,整型轉字串,這樣會稍損效能,並且可能會不符合程式本意。
弱型別語言都是指令碼語言,在執行時確定值,所以跟編譯不相關。
我的經驗是弱型別在大專案開發上,還是不方便,需要在整個框架結構上做規範,否則多人合作開發比較麻煩。
弱型別使用簡單,更靈活多變。對於程式設計師來講這是個優點。
強型別語言,型別轉換的時候非常嚴格,這跟語言特點有關係,
強型別語言是直接操縱記憶體,容易出記憶體越界和洩漏的問題。在型別的轉換方面是很多約束,甚至強制轉換也要很謹慎,一不小心就出大問題。
弱型別語言一般都會犧牲一些執行效能,不過簡單好用,而且相對安全。
其實兩種型別對應的語言本身其他的差異已經很大了,整個區別還是比較明顯的。
強型別語言和弱型別的語言有什麼區別?
2樓:匿名使用者
弱型別語言vbs:
a=1b=a+"1"+"a" //結果是11a,這裡 a 成了字串c=a+1 //結果是2 ,這裡a則是數字型強型別語言:c#
int a=2
string b=a.tostring()+"1"+"a"
int c=a+1
看到了嗎?區分大小寫,需要實現申明型別外,一個重要的區別是,弱型別的語言的東西沒有明顯的型別,他能隨著環境的不同,自動變換型別
而強型別則沒這樣的規定,不同型別間的操作有嚴格定義,只有相同型別的變數才能操作,雖然系統也有一定的預設轉換,當絕沒有弱型別那麼隨便
ps:弱型別**簡單,但因為變數沒有確定的型別,所以容易出錯!強型別**複雜(比如:
轉換日期顯示格式 (convert.todatetime("2007-1-1 08:08:
08")).tostring("yyyy-mm-dd"),呵呵你可以看到這種寫法相當麻煩),但因為有嚴格定義所以不容易出錯
指令碼語言,C語言,C 語言有什麼區別
語言本質沒有區別,只是在不同領域某些語言優勢更明顯某些語言優勢更不明顯而已 c 就是在c的基礎上引入了更過的東西。c語言和c 語言的區別是什麼?c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個...
extjs客戶端指令碼語言和jquery對比,哪個更流行 哪個功能技術更強大
jquery更流行點,不過做富客戶端extjs比較強,jquery也有jquery easyui這套和extjs差不多 jquery和extjs哪個好一點?他們有什麼區別?jquery 偏向於前端,感覺就象一種高階點的css,偏向於網頁前端,extjs偏向於管理系統 cms,感覺象是組裝器,複雜的表...
有用於微控制器程式開發的解釋型語言 指令碼語言 嗎
你說的那種語言必須要有系統軟體的支援,而微控制器是裸機,只能識別機器碼,所以不行。我不知道現在有沒有,不過我想以後會有的吧 可能性相當小 現在已經有專門為微控制器設計的系統軟體了。但是沒有用指令碼語言的必要,現在的微控制器開發語言夠用了。目前我見過類似的應用,只是類似。是用微控制器模擬plc,用按鍵...