㈠ 如果將一個函數的聲明寫在頭文件中,程序中不再進行函數聲明,程序是否能正確編譯連接執行
你要是知道包含頭文件是什麼意思就理解了
比如
// test.h
int test();
//test.c
#include "test.h"
void main()
{
test();
}
編譯之後,實際上市
//test.cpp
int test();
void main()
{
test();
}
就是說你頭文件的東西統統會導入到包含它的文件
㈡ C語言中一個函數如果在主函數中沒有調用,會被編譯么
會的,當你運行時,編譯器還要檢查你的函數是否有格式或其它錯誤!
㈢ 函數已經聲明過了,但是編譯的時候還是說沒有聲明
你的聲明是Calcluate,調用的時候是Calculate,單詞拼錯了。
㈣ c++里自己定義的頭文件編譯了嗎,怎樣的編譯的
頭文件是放置函數聲明的,不會被編譯為二進制文件,自己定義的頭文件只需要加入 project 即可被其他 cpp 用 #include "xxx.h" 的形式來引用。
你可以在 new ->files 來新建 c++ header file ,這樣會被自動加入當前 project
也可以用任意文本編輯器自己編輯 .h 文件,然後通過 project ->add to project ->files 來加入當前 project .
㈤ 沒有聲明函數也可以通過編譯
如果該函數聲明的修飾符為public類型的,在main中當然可以直接調用了。public不受調用限制
㈥ 未被調用的函數是否也會被編譯進程序里
這個要看是編譯性語言還是解讀性語言,比如html之類的是讀到哪裡編譯到哪裡
㈦ 若一個函數聲明了,但沒用到,編譯器在哪個階段會報錯
聲明過後沒用到是不會報錯的,除非函數聲明部分就有問題
㈧ 關於C語言的函數聲明,是不是過時了
老師說的不準確,當程序編譯的時候,並不是先找main(),而是順序地讀代碼,會首先將函數定義,宏定義,常量等預處理放入內存,如果沒有,也沒關系,然後找到main(),將其放入內存里,然後在看main()裡面有沒有調用到其他的函數,如果有,就到先前的內存里找到該函數的聲明,如果有聲明過,編譯就沒問題。然後在找其他函數的定義,將其地址關聯到之前函數聲明。
結論是,編譯時,代碼絕對是一行一行往下讀的,你們老師對內存懂地很少。
㈨ C++中,只是聲明一個函數而不定義,編譯時會不會產生與之相對應的命令代碼
不會產生代碼,也不會出錯。就算語言規定默認定義的構造函數如果不使用不會產生代碼的。