㈠ c++未定義標識符怎麼辦
1、通常在定義某個類型的變數時我們都需要引入相應的頭文件,系統才能別該標識符。
㈡ C 語言 error C2065: 「_Bool」: 未聲明的標識符 跪求大神指點
這個應該是編譯器不支持,可以將_Bool 換成 int
㈢ c++編譯問題:未聲明的標識符
請貼main.cpp的源代碼,問題在main.cpp里
補充:
在C和C++程序中,變數及方法的聲明和調用是有順序的。如果你在聲明一個變數之前就已經使用了這個變數,就會出現未申明的標識符錯誤。
所以你的程序正常在聲明、包含和調用的順序應該是這樣的。
general.h文件,聲明結構體TT
#pragma once
/*
這里不需要#include "h1.h"
*/
#include <iostream>
struct TT
{
int a;
int b;
};
h1.h聲明print方法,使用了結構體TT,需要#include "general.h",因為這個文件里包含了對TT的聲明
#include "general.h"
using namespace std;
void print(TT t)
{
cout << "print" << t.a << " " << t.b << endl;
}
main部分
/*
這里不是#include "general.h",而是#include "h1.h",因為h1.h中即包含了print方法的聲明,同時也#include "general.h"包含了對TT結構體的聲明
*/
#include "h1.h"
using namespace std;
int main()
{
TT t;
t.a = 1;
t.b = 3;
print1(t);
print2(t);
system("PAUSE");
return 0;
}
㈣ C語言這個未聲明的標識符,該怎麼改
system函數在stdlib.h中。
函數聲明為
int system(char *command);
功能是執行一個當前操作系統的 shell命令,windows下調用就如同在ms-dos窗口中執行一項command中存儲的命令。
比如system("dir");
會顯示當前目錄下的文件信息。
最常用的system指令是system("pause"); 作用是使命令行窗口暫停,出現一行"Press any key to continue"的文字,一般用於主函數結尾以保存現場供調試/查看。
getch():
所在頭文件:conio.h
函數用途:從控制台讀取一個字元,但不顯示在屏幕上
函數原型:int getch(void)
返回值:讀取的字元
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();會等待你按下任意鍵,再繼續執行下面的語句;
用ch=getch();會等待你按下任意鍵之後,把該鍵字元所對應的ASCII碼賦給ch,再執行下面的語句。
易錯點
1.所在頭文件是conio.h。而不是stdio.h。
2.在使用之前要調用initscr(),結束時要調用endwin()。否則會出現不輸入字元這個函數
也會返回的情況。
3.在不同平台,輸入回車,getch()將返回不同數值,而getchar()統一返回10(即\n)
1)windows平台下ENTER鍵會產生兩個轉義字元 \r\n,因此getch返回13(\r)。
2)unix、 linux系統中ENTER鍵只產生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER鍵將產生 \r ,因此getch返回13(\r)。
getch();並非標准C中的函數,不存在C語言中。所以在使用的時候要注意程序的可移植性。國內C語言新手常常使用getch();來暫停程序且不知道此函數來源,建議使用getchar()或者使用<stdlib.h>頭文件中的system("PAUSE")調用系統命令暫停;(如果情況允許)代替此功能或更換一款編譯器。
在調用自己不熟悉的函數時,請查閱c語言手冊。把函數所在的頭文件包含到程序中。