可能有如下原因:
1、庫函數(shù)拼寫錯誤。如:printf,scanf等。
2、定義的函數(shù)名在調(diào)用時,函數(shù)名拼寫錯誤。
3、在執(zhí)行函數(shù)時可能函數(shù)體本身的問題。
4、檢查一下任務(wù)欄,一般都是上一次“運行”的小黑窗還沒關(guān),然后執(zhí)行“編譯”,由于該文件正在被使用,程序沒法執(zhí)行編譯,所以就報了這樣的錯誤。
解決方法:把剛才運行的cmd窗口關(guān)閉。
擴(kuò)展資料:
注意事項
c語言實現(xiàn)多次輸入可以引入頭文件#include
"stdafx.h"和#include
"stdio.h"。
創(chuàng)建主函數(shù)void
main(){},在主函數(shù)中添加如下代碼:
int
number
=
0;
while
(true)
{
printf("請輸入數(shù)字:");scanf("%d",&number); }
經(jīng)常需要一個函數(shù)自執(zhí)行,可惜這一種寫法是錯的:復(fù)制代碼代碼如下:function(){alert(1);}();原因是前半段“function(){alert(1);}”被當(dāng)成了函數(shù)聲明,而不是一個函數(shù)表達(dá)式,從而讓后面的“();”變得孤立,產(chǎn)生語法錯。
按上面的分析,這一段代碼雖說沒有語法錯,但也是不符合我們的預(yù)期的,因為這個函數(shù)并沒有自執(zhí)行。復(fù)制代碼代碼如下:function(){alert(1);}(1);正確的寫法多種多樣,也各有利弊:方法1:最前最后加括號復(fù)制代碼代碼如下:(function(){alert(1);}());這是jslint推薦的寫法,好處是,能提醒閱讀代碼的人,這段代碼是一個整體。
例如,在有語法高亮匹配功能的編輯器里,光標(biāo)在第一個左括號后時,最后一個右括號也會高亮,看代碼的人一眼就可以看到這個整體。不過,對于某些寫代碼不喜歡在行后加分號的同學(xué),也會形成一些坑坑,例如以下代碼會報運行錯:復(fù)制代碼代碼如下:var a=1(function(){alert(1);}());方法2:function外面加括號復(fù)制代碼代碼如下:(function(){alert(1);})();這種做法比方法1少了一個代碼整體性的好處。
方法3:function前面加運算符,常見的是!與void 。復(fù)制代碼代碼如下:!function(){alert(1);}();void function(){alert(2);}();顯然,加上“!”或“+”等運算符,寫起來是最簡單的。
加上“void ”要敲五下鍵盤,但是聽說有一個好處是,比加"!"少一次邏輯運算。----我只是聽說,不明所以。
最后,代表我個人,強(qiáng)烈支持方法1,即jslint的推薦寫法:復(fù)制代碼代碼如下:(function(){alert(1);}());。
這種叫自執(zhí)行函數(shù)表達(dá)式
在這種情況下,解析器在解析function關(guān)鍵字的時候,會將相應(yīng)的代碼解析成function表達(dá)式,而不是function聲明。
// 下面2個括弧()都會立即執(zhí)行
(function () { /* code */ } ()); // 推薦使用這個
(function () { /* code */ })(); // 但是這個也是可以用的
// 由于括弧()和JS的&&,異或,逗號等操作符是在函數(shù)表達(dá)式和函數(shù)聲明上消除歧義的
// 所以一旦解析器知道其中一個已經(jīng)是表達(dá)式了,其它的也都默認(rèn)為表達(dá)式了
var i = function () { return 10; } ();
true && function () { /* code */ } ();
0, function () { /* code */ } ();
// 如果你不在意返回值,或者不怕難以閱讀
// 你甚至可以在function前面加一元操作符號
!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();
srand(time(NULL)):這是兩個函數(shù),一個是srand函數(shù),這是在調(diào)用rand()這個函數(shù)之前使用的,rand()是一個產(chǎn)生隨機(jī)數(shù)的函數(shù),而srand是一個設(shè)置隨機(jī)數(shù)種子的函數(shù),通常這兩個函數(shù)是一起使用的,來完成產(chǎn)生隨機(jī)數(shù)的功能。
而time(NULL)這個函數(shù)的返回值是作為srand函數(shù)的參數(shù)的,意思是以現(xiàn)在的系統(tǒng)時間作為隨機(jī)數(shù)的種子來產(chǎn)生隨機(jī)數(shù),至于NULL這個參數(shù),因為這個話就返回到現(xiàn)在時間時候的long秒,只有設(shè)置成NULL才能獲得系統(tǒng)的時間。
擴(kuò)展資料:
計算機(jī)并不能產(chǎn)生真正的隨機(jī)數(shù),而是已經(jīng)編寫好的一些無規(guī)則排列的數(shù)字存儲在電腦里,把這些數(shù)字劃分為若干相等的N份,并為每份加上一個編號用srand()函數(shù)獲取這個編號,然后rand()就按順序獲取這些數(shù)字,當(dāng)srand()的參數(shù)值固定的時候,rand()獲得的數(shù)也是固定的,所以一般srand的參數(shù)用time(NULL),因為系統(tǒng)的時間一直在變,所以rand()獲得的數(shù),也就一直在變,相當(dāng)于是隨機(jī)數(shù)了。只要用戶或第三方不設(shè)置隨機(jī)種子,那么在默認(rèn)情況下隨機(jī)種子來自系統(tǒng)時鐘。
如果想在一個程序中生成隨機(jī)數(shù)序列,需要至多在生成隨機(jī)數(shù)之前設(shè)置一次隨機(jī)種子。 即:只需在主程序開始處調(diào)用srand((unsigned)time(NULL));后面直接用rand就可以了。不要在for等循環(huán)放置srand((unsigned)time(NULL))。
主要原因是你沒有把查找范圍固定住。由于公式會自動復(fù)制。所以,你前幾項可以查找到,到了后面你就查不到。因為到了后面的話,公式也許會變成=VLOOKUP(C20,C20:D40000,2,FALSE)等。隨著你的鼠標(biāo)的移動,公式自動跟著鼠標(biāo)所在的單元格的地址在變動。解決辦法,把公式的括號里的C3:D9999選中后按F9鍵,會出現(xiàn)美元的符號($c$3:$d$9999),也就是把C3:D9999這個范圍固定后,就可以用VLOOKUP實現(xiàn)你所想查找的目標(biāo)結(jié)果。
是的。這里的變量也包括函數(shù)。函數(shù)也是一種變量。匿名寫法可以避免變量全局污染。
比如。在別人寫過的一段js代碼中你想在里面加一些自己的代碼。最好的做法就是用匿名函數(shù)包裹。舉個例子來看為什么。
比如,已經(jīng)存在一段別人寫的代碼了,假設(shè)這段代碼很長你不想看。
//別人的代碼
.
.很多
//這里他定義了一個叫foo的函數(shù)
function foo{
一些函數(shù)邏輯
}
好,現(xiàn)在你自己想在同一個頁面里面加一些自己的代碼。假如你不知道別人已經(jīng)定義了foo函數(shù),你又額外在自己的函數(shù)里面定義一次
function foo{
..
}
把這段代碼加在了頁面的最后。這樣你的函數(shù)定義就覆蓋了 原來別人i寫的函數(shù)定義。
恰巧,在某個事件里面,就使用foo函數(shù)。這個時候,原來的邏輯就不能正確執(zhí)行了。
假如你的定義寫在匿名函數(shù)里面, 那么這個定義就對外部不可見的,不會覆蓋原來的。這樣就避免了變量污染。 實際的應(yīng)用,你就去參考 流行js庫的源代碼。通常都是如下寫法
;(function(){
var 。.
.
})()
這樣就會避免變量污染了。
注意,在開始的第一個字符 使用 分號,這是因為避免出現(xiàn)代碼壓縮時產(chǎn)生意外的錯誤。因為js可以省寫分號。假設(shè)有段代碼是
.
return result
然后又在js合并壓縮時 合并成一個文件
return reslut;(function(){。})()
如果沒有分號就會成這樣
.
return reslut(function(){。})()
在代碼進(jìn)行壓縮后result 變成了一個函數(shù)了,這明顯是錯誤的。
因此在匿名函數(shù)的前面加個 分號 也是個良好的習(xí)慣
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:2.695秒