A. C++按照書上的程序編譯時顯示預處理錯誤
不要隨便寫一個代碼就那編譯器編譯,編譯都是有條件的。VC正常的方法是創建工程,然後在工程生成的代碼里添加你的代碼
對於VC文件,有一個加快編譯速度的預編譯頭,一般是創建工程是創建的stdafx.h文件,每個cpp文件第一行必須包含這個問題
對於你這個,打開工程設置,找到C++編譯設置,把預編譯頭去掉即可,要慢慢找,選項好多
B. sqlca.sqlcode = 100是什麼意思
如果一個 SQL 語句發生了錯誤,那麼 sqlca.sqlcode 將是非零值。
如果 sqlca.sqlcode 小於 0 那麼就是發生了某種嚴重的錯誤,象資料庫定義與查詢定義不一致等.
如果大於 0 則是通常的錯誤,象表不包括所要求的行等.
sqlca.sqlcode == 0,成功
sqlca.sqlcode == -1 失敗 (獲取具體失敗信息:messagebox('',"出錯信息:"+sqlca.SQLErrText) )--PB里的操作方法
可能發生的錯誤列表:
-12, Out of memory in line %d.
通常不出現這個錯誤。這是你的虛擬內存耗盡的標志。
-200, Unsupported type %s on line %d.
通常不出現這個錯誤.這表明預編譯器生成了一些庫(函數)不認得的東西.可能你運行的預編譯器和當前庫不兼容.
-201, Too many arguments line %d.
這意味著 Postgres 返回了比我們的匹配變數更多的參數.可能你漏了幾個INTO :var1,:var2-列表裡的宿主變數.
-202, Too few arguments line %d.
這意味著 Postgres 返回了比我們的對應宿主變數要少的參數.可能你多輸入了幾個INTO :var1,:var2-列表裡的宿主變數.
-203, Too many matches line %d.
著意味著查詢返回了多個行,但你聲明的變數不是數組.你執行的 SELECT 可能不是唯一的.
-204, Not correctly formatted int type: %s line %d.
著意味著宿主變數是一個 int 類型並且 Postgres 資料庫里的欄位是另一種類型,包含著一個不能轉換成一個 int 類型的數值.庫(函數)使用 strtol 做此類轉換.
C. 「預編譯頭文件來自編譯器的早期版本,或者預編譯頭為 C++ 而在 C 中使用它(或相反)」
把min.c重命名為min.h
c是源文件
h是頭文件
D. 為什麼我都編譯不了
你編譯器不存在這個頭文件。你引用 了當然編譯錯誤了 編譯器通過一個頭文件stdafx.h來使用預編譯頭文件。stdafx.h這個頭文件名是可以在project的編譯設置里指定的。編譯器認為,所有在指令include "stdafx.h"前的代碼都是預編譯的,它跳過include "stdafx. h"指令,使用projectname.pch編譯這條指令之後的所有代碼。 因此,所有的MFC實現文件第一條語句都是:include "stdafx.h"。 單獨將StdAfx.cpp重新編譯一次
E. 錯誤 1 fatal error C1853: "Debug\sift.pch"預編譯頭文件來自編譯器的早期版本
該錯誤是因為當項目中混合了 .cpp 和 .c 文件時,編譯器會對它們採取不同的編譯方式(主要是因為對函數聲明的處理方式不同),因而不能共用一個預編譯頭文件。在 VC++ 中,默認的預編譯頭文件是針對 C++ 的 (stdafx.h 和 stdafx.cpp),當然也可以創建針對 C 的預編譯頭。
方法:將少數的不同類文件設為不使用預編譯頭是比較平衡的做法,方法是:對於 VC++6.0,在 FileView 里對要取消預編譯頭的 .c (或 .cpp) 文件點右鍵,選擇 settings,在彈出的對話框右邊選擇 category 為 precompiled headers,再設置選項為 not using ...;(對於 VS2005,則在 solution explorer 中對相應文件點右鍵選擇 properties,在 precompiled headers 項下設置 not using... 即可。如果需要設置多個文件,則可以按住 Ctrl 鍵再同時選中這些文件並設置)PS:解釋如下點擊項目 點擊屬性 然後選擇C/C++ 預編譯頭 創建使用頭文件 不使用預編譯頭文件(解決方案資源管理器-右擊需要排除的c或cpp文件]-彈出屬性菜單-展開C/C++-預編譯頭-創建/使用預編譯頭-選擇不適用預編譯頭)
F. c++ vis編譯器 錯誤1010
在編譯VC++6.0是,出現fatal error C1010: unexpected end of file while looking for precompiled header directive
的錯誤.
解決方法:
1、如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的,則Alt+F7進入當前工程的 Settings,選擇C/C++選項卡,從Category組合框中選中Precompiled Headers,選擇Not Using Precompiled headers。確定。
2、在文件開頭添加:
#include "stdafx.h"
對預編譯頭文件說明如下:
所謂頭文件預編譯,就是把一個工程(Project)中使用的一些MFC標准頭文件(如Windows.H、Afxwin.H)預先編譯,以後該工程編譯時,不再編譯這部分頭文件,僅僅使用預編譯的結果。這樣可以加快編譯速度,節省時間。
預編譯頭文件通過編譯stdafx.cpp生成,以工程名命名,由於預編譯的頭文件的後綴是「pch」,所以編譯結果文件是projectname.pch。
編譯器通過一個頭文件stdafx.h來使用預編譯頭文件。stdafx.h這個頭文件名是可以在project的編譯設置里指定的。編譯器認為,所有在指令#include "stdafx.h"前的代碼都是預編譯的,它跳過#include "stdafx. h"指令,使用projectname.pch編譯這條指令之後的所有代碼。
因此,所有的CPP實現文件第一條語句都是:#include "stdafx.h"。
G. c語言運行到一半出現error是怎麼回事呢
C語言程序運行出現exe停止工作的原因是因為內存溢出和編譯器錯誤。
第一種:內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體。
第二種:編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
舉例說明:
1、除以零。
2、數組越界:int a[3]; a[10000000]=10。
3、指針越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10。
4、使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10。
5、數組開得太大,超出了棧的范圍,造成棧溢出:int a[100000000],沒有開辟內存 List L=(List)malloc(sizeof(struct LNode))。runtimeerror(運行時錯誤)就是程序運行到一半,程序就崩潰了。
(7)預編譯器錯誤擴展閱讀:
C特有特點:
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
H. 錯誤 1 error C1853: 「Debug\test.c.pch」預編譯頭文件來自編譯器的早期版本,或者預編譯頭為 C++ 而在 C
告警信息里有說明,可能是你包含的頭文件是不當前所使用編譯器里的頭文件。
檢查一下頭文件是不是當前所使用的編譯器里的文件。