因為CB專案里可以直接使用Delphi單元,所以必須也能提示Delphi語法的東西,就使用一樣的技術了。靜態實作是基于知識庫+源代碼掃描,實質就是文本搜索,動態實作除了文本搜索,還有語法掃描,能實時檢查出語法錯誤,所以敲代碼的時候有時在IDE下方的訊息視窗中會出現Unable to invoke Code Completion due to errors in source code,另外即便沒有原始碼,動態實作也能從.lib、.obj、.dcu得到資訊。
uj5u.com熱心網友回復:
因為CB專案里可以直接使用Delphi單元,所以必須也能提示Delphi語法的東西,就使用一樣的技術了。靜態實作是基于知識庫+源代碼掃描,實質就是文本搜索,動態實作除了文本搜索,還有語法掃描,能實時檢查出語法錯誤,所以敲代碼的時候有時在IDE下方的訊息視窗中會出現Unable to invoke Code Completion due to errors in source code,另外即便沒有原始碼,動態實作也能從.lib、.obj、.dcu得到資訊。
看來我的知識老化了。在我上學的那個時期,gcc還使用yacc生成決議器,所以肯定是LR決議器沒問題,不過剛看了一下gcc 7.2的原始碼,其決議器gcc7.2.0\gcc\cp\parser.c(一個1.2MB的恐怖C原始碼)里面明確說了“The parser is of the standard recursive-descent variety”,應該是某種LL決議器,而不是LR。繼續搜索了一下,發現gcc從2004年10月開始就使用了新的語法決議器,不再使用yacc自動生成,繼續搜索,發現clang也使用的LL決議器,也許現在主要語言都不使用LR決議器了,我感覺學過的編譯原理已經過時了...
uj5u.com熱心網友回復:
看來我的知識老化了。在我上學的那個時期,gcc還使用yacc生成決議器,所以肯定是LR決議器沒問題,不過剛看了一下gcc 7.2的原始碼,其決議器gcc7.2.0\gcc\cp\parser.c(一個1.2MB的恐怖C原始碼)里面明確說了“The parser is of the standard recursive-descent variety”,應該是某種LL決議器,而不是LR。繼續搜索了一下,發現gcc從2004年10月開始就使用了新的語法決議器,不再使用yacc自動生成,繼續搜索,發現clang也使用的LL決議器,也許現在主要語言都不使用LR決議器了,我感覺學過的編譯原理已經過時了...
眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......
值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......