[C++学习笔记]C++常见问题大全(一)
#include<iostream>里的定義
#include 是個包含命令,就是把iostream.h這個文件里的內容復制到這個地方
iostream.h是input output stream的簡寫,意思為標準的輸入輸出流頭文件。它包含: (1)cin>>"要輸入的內容" (2)cout<<"要輸出的內容" 這兩個輸入輸出的方法需要#include<iostream.h>來聲明頭文件。 iostream.h與iostream是不同的。 #include<iostream.h>是在舊的標準C++中使用。在新標準中,用#include<iostream>。iostream 的意思是輸入輸出流。#include<iostream>是標準的C++頭文件,任何符合標準的C++開發(fā)環(huán)境都有這個頭文件。還要注意的是:在VS編程時要添加: using namespace std;
其原因是:后綴為.h的頭文件C++標準已經(jīng)明確提出不支持了,早些的實現(xiàn)將標準庫功能定義在全局空間里,聲明在帶.h后綴的頭文件里,C++標準為了和C區(qū)別開,也為了正確使用命名空間,規(guī)定頭文件不使用后綴.h。因此,當使用<iostream.h>時,相當于在c中調用庫函數(shù),使用的是全局命名空間,也就是早期的c++實現(xiàn);當使用<iostream>的時候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout。
ntdll.dll
ntdll.dll是NT操作系統(tǒng)重要的模塊。?[1]
ntdll.dll是Windows系統(tǒng)從ring3到ring0的入口。位于Kernel32.dll和user32.dll中的所有win32 API 最終都是調用ntdll.dll中的函數(shù)實現(xiàn)的。ntdll.dll中的函數(shù)使用SYSENTRY進入ring0,函數(shù)的實現(xiàn)實體在ring0中。?[1]
kernel32.dll
kernel32.dll是Windows 9x/Me中非常重要的32位動態(tài)鏈接庫文件,屬于內核級文件。它控制著系統(tǒng)的內存管理、數(shù)據(jù)的輸入輸出操作和中斷處理,當Windows啟動時,kernel32.dll就駐留在內存中特定的寫保護區(qū)域,使別的程序無法占用這個內存區(qū)域。
KernelBase.dll
KernelBase.dll是一個NT內核系統(tǒng)的底層API接口的DLL文件,與另外一個kernel32.dll有相同的功能。這個API接口主要是對接我們常說的運行庫(C++、.net framework、DirectX等)。而我們安裝運行的軟件是通過上述運行庫,調用KernelBase.dll或kernel32.dll作為初始化執(zhí)行的工作。系統(tǒng)執(zhí)行也通過KernelBase.dll或kernel32.dll作為初始化,調用運行庫運行程序。
msvcp140d.dll
“msvcp140.dll屬于VC++2015運行庫,也就是Microsoft Visual C++ 2015 Redistributable Package。
vcruntime140d.dll
DLL指的是動態(tài)鏈接庫,用于處理各種程序。每臺計算機上都有相當多的DLL文件,不同的程序使用不同的DLL文件,例如,VcRuntime140.dll可用于Visual Studio 2015的Visual C ++ Redistributable。
ucrtbased.dll
ucrtbased.dll is a "debug"-version of the file ucrtbase.dll, and is used for "debugging" (software testing) during software development.
Normally, debug versions of programs are not meant to be distributed. Release versions should not make use of debug dll files.
C語言一維數(shù)組的定義和引用
在C語言中使用數(shù)組必須先進行定義。一維數(shù)組的定義方式為:
? ? 類型說明符 數(shù)組名 [常量表達式];
其中,類型說明符是任一種基本數(shù)據(jù)類型或構造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標識符。方括號中的常量表達式表示數(shù)據(jù)元素的個數(shù),也稱為數(shù)組的長度。例如:
FILE *fp;是什么意思?
FILE?*fp 是聲明,聲明fp是指針,用來指向FILE類型的對象。
*fp是指向文件結構體的指針變量,通過fp可找到存放某個文件信息的結構變量,根據(jù)這個結構變量的信息找到該文件,實施對文件的操作。fp通常被成為一個指向文件的指針。
fopen()是一個常用的函數(shù),用來以指定的方式打開文件,其原型為:
? ? FILE * fopen(const char * path, const char * mode);
【參數(shù)】path為包含了路徑的文件名,mode為文件打開方式。
mode有以下幾種方式:
| r | 以只讀方式打開文件,該文件必須存在。 |
| r+ | 以讀/寫方式打開文件,該文件必須存在。 |
| rb+ | 以讀/寫方式打開一個二進制文件,只允許讀/寫數(shù)據(jù)。 |
| rt+ | 以讀/寫方式打開一個文本文件,允許讀和寫。 |
| w | 打開只寫文件,若文件存在則長度清為0,即該文件內容消失,若不存在則創(chuàng)建該文件。 |
| w+ | 打開可讀/寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。 |
| a | 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內容會被保留(EOF符保留)。 |
| a+ | 以附加方式打開可讀/寫的文件。若文件不存在,則會建立該文件,如果文件存在,則寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內容會被保留(原來的EOF符 不保留)。 |
| wb | 以只寫方式打開或新建一個二進制文件,只允許寫數(shù)據(jù)。 |
| wb+ | 以讀/寫方式打開或建立一個二進制文件,允許讀和寫。 |
| wt+ | 以讀/寫方式打開或建立一個文本文件,允許讀寫。 |
| at+ | 以讀/寫方式打開一個文本文件,允許讀或在文本末追加數(shù)據(jù)。 |
| ab+ | 以讀/寫方式打開一個二進制文件,允許讀或在文件末追加數(shù)據(jù)。 |
c語言 clock() 計算函數(shù)的執(zhí)行時間
clock(): 捕捉從程序開始運行到clock()被調用時所耗費的時間。這個時間單位是clock tick,即“時鐘打點”。
常數(shù)CLK_TCK:機器時鐘每秒所走的時鐘打點數(shù)。
C語言gmtime()函數(shù):獲取當前時間和日期
void stime(void) {unsigned long long a = 0;char timeStr[14];time_t timer;struct tm* tblock;time(&timer);tblock = gmtime(&timer);a = (tblock->tm_year + 1900) * 100;a = (a + tblock->tm_mon + 1) * 100;a = (a + tblock->tm_mday) * 100;a = (a + tblock->tm_hour + 8) * 100;a = (a + tblock->tm_min) * 100;a = (a + tblock->tm_sec);//sprintf(timeStr, "%llu", a);printf("現(xiàn)在時間是 %d 年 %d 月 %d 日 %d 時 %d 分 %d 秒.\n", \tblock->tm_year + 1900, tblock->tm_mon + 1, tblock->tm_mday, \tblock->tm_hour + 8, tblock->tm_min, tblock->tm_sec);//printf("a = %llu\n", a);//printf("timeStr = %s\n", timeStr); }C語言fabs()函數(shù):求雙精度浮點數(shù)的絕對值
C語言 fabs() 函數(shù)用于求雙精度浮點數(shù)的絕對值。
頭文件:math.h
語法/原型:
double fabs(double x);
參數(shù) x 是求絕對值的數(shù)。
返回值:參數(shù) x 的絕對值。
【實例】使用C語言 fabs() 函數(shù)求3和-4的絕對值。
運行結果:
3.300000??????? 4.400000
相關函數(shù):
- abs():求整數(shù)的絕對值。
總結
以上是生活随笔為你收集整理的[C++学习笔记]C++常见问题大全(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给头像戴上口罩
- 下一篇: [C++调试笔记]define.h