国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

C1083報(bào)錯(cuò)修復(fù):msinttypes補(bǔ)齊stdint.h,跨平臺(tái)編譯不再卡殼

C1083報(bào)錯(cuò)修復(fù):msinttypes補(bǔ)齊stdint.h,跨平臺(tái)編譯不再卡殼 簡(jiǎn)介在 Visual Studio 系列編譯器中缺少 C99 標(biāo)準(zhǔn)頭文件 stdint.h 與 inttypes.h 會(huì)觸發(fā) fatal error C1083: 無(wú)法打開(kāi)包括文件根本原因是 VC 對(duì) C99 標(biāo)準(zhǔn)支持不完整。這份修復(fù)包專門針對(duì)該報(bào)錯(cuò)整理面向使用 VS2008 或其他老版本 VC 進(jìn)行 C/C 項(xiàng)目開(kāi)發(fā)、需要引入標(biāo)準(zhǔn)整數(shù)類型定義的程序員。包內(nèi)共 3 個(gè)文件包括兩個(gè)頭文件與一個(gè)更新日志文本頭文件提供了 int8_t、uint32_t 等標(biāo)準(zhǔn)整數(shù)類型的聲明與平臺(tái)兼容定義日志則記錄了版本變更信息整體僅 17KB只包含修復(fù)所需的全部?jī)?nèi)容足以直接解決該編譯錯(cuò)誤且不需要額外依賴。資源已有 333 人學(xué)習(xí)下載體積小巧、針對(duì)性強(qiáng)適合在編譯報(bào)錯(cuò)時(shí)快速定位解決對(duì)時(shí)間緊張的項(xiàng)目排障尤其友好。通過(guò)該包不僅能獲得可直接復(fù)用的缺失頭文件還能了解舊版 Windows SDK/VC 在 C99 支持上的限制與補(bǔ)全思路對(duì)維護(hù)老項(xiàng)目或跨平臺(tái)代碼有實(shí)用參考價(jià)值。1. 從C1083報(bào)錯(cuò)說(shuō)起這個(gè)資源到底是干什么的兩年前我接手一個(gè)跨平臺(tái)網(wǎng)絡(luò)庫(kù)的移植代碼在Linux上跑得好好的一挪到Windows上編譯控制臺(tái)直接蹦出一行刺眼的fatal error C1083: stdint.h。當(dāng)時(shí)第一反應(yīng)是“缺頭文件裝個(gè)SDK就行”折騰半天發(fā)現(xiàn)根本不是那回事——老版本的MSVC壓根沒(méi)實(shí)現(xiàn)C99的stdint.h而代碼里到處是uint32_t、int64_t。后來(lái)從某嵌入式論壇看到msinttypes-r26這個(gè)補(bǔ)丁包解壓后把路徑一配置編譯直接通過(guò)。這份資源本質(zhì)上是一個(gè)頭文件包專門幫老編譯器補(bǔ)上標(biāo)準(zhǔn)整數(shù)類型頭文件解決的就是“C1083且錯(cuò)誤指向stdint.h”這類問(wèn)題。適合所有在Windows上編譯開(kāi)源代碼、做跨平臺(tái)移植、或者維護(hù)老舊C/C工程的開(kāi)發(fā)者。2. stdint.h為何會(huì)在Windows上缺席C標(biāo)準(zhǔn)與編譯器的差距2.1 MSVC對(duì)C99支持的緩慢歷史C語(yǔ)言標(biāo)準(zhǔn)在1999年就提出了stdint.h和inttypes.h里面定義了帶固定寬度的整數(shù)類型比如int32_t、uint64_t還有格式化宏P(guān)RId64。這套頭文件在Linux、macOS、各種嵌入式編譯器里早就普及了但Windows平臺(tái)上的老牌C編譯器一直停留在C89/C90的舒適區(qū)對(duì)C99特性的支持能拖就拖。直到VS2010那一代才真正內(nèi)置了stdint.h之前的版本全都需要外部補(bǔ)丁。即使到了VS2010之后部分變體仍然在“有”和“沒(méi)有”之間反復(fù)橫跳讓人頭疼。為什么老牌編譯器這么抗拒C99常見(jiàn)理由是ABI兼容性和歷史代碼的穩(wěn)定性。Windows上有大量老程序依賴long類型32位、int類型32位的默認(rèn)行為如果按照C99的嚴(yán)格定義引入stdint.h可能會(huì)讓一些隱式類型轉(zhuǎn)換出現(xiàn)警告甚至錯(cuò)誤。再加上Windows自己的SDK頭文件里也定義了一套類似的類型比如INT32、UINT64沖突風(fēng)險(xiǎn)極高。所以廠商選擇了“不主動(dòng)實(shí)現(xiàn)”讓開(kāi)發(fā)者自己去想辦法。msinttypes就是這個(gè)場(chǎng)景下的產(chǎn)物。它最初是某個(gè)開(kāi)源愛(ài)好者為了解決自家嵌入式項(xiàng)目的編譯問(wèn)題而寫(xiě)的后來(lái)不斷修復(fù)邊界情況r26版本就是其中的一個(gè)穩(wěn)定提交。它不編譯、不鏈接就是兩個(gè)頭文件加幾個(gè)輔助文件把C99標(biāo)準(zhǔn)里定義的類型和宏原樣翻譯成老編譯器能識(shí)別的typedef和#define。用上之后源碼里就不用再到處寫(xiě)“#ifdef WIN32 typedef ...”這種丑陋的兼容層了。實(shí)際使用中你會(huì)發(fā)現(xiàn)很多開(kāi)源項(xiàng)目在Windows上編譯失敗很大比例都是栽在stdint.h上。比如某個(gè)用C語(yǔ)言寫(xiě)的物聯(lián)網(wǎng)協(xié)議棧內(nèi)部大量使用了uint16_t來(lái)解析報(bào)文在Linux上編譯順暢一拿到Windows上就報(bào)C1083新手往往會(huì)誤判成“SDK沒(méi)裝好”反復(fù)重裝環(huán)境最后發(fā)現(xiàn)只是缺一個(gè)頭文件。這種血淚經(jīng)驗(yàn)經(jīng)歷過(guò)一次就能記住。2.2 stdint.h在跨平臺(tái)代碼里的實(shí)際價(jià)值先來(lái)看為什么跨平臺(tái)代碼離不開(kāi)stdint.h。C標(biāo)準(zhǔn)只保證了char、int、long這些基礎(chǔ)類型的最小范圍并沒(méi)有承諾它們?cè)诿總€(gè)平臺(tái)上的位寬。在主流平臺(tái)上int通常是32位long在Linux 64位下是64位但在Windows 64位下仍然是32位。這意味著同樣的代碼在Linux上運(yùn)行正常換到Windows上就可能出現(xiàn)結(jié)構(gòu)體大小不對(duì)、序列化格式錯(cuò)亂、位運(yùn)算結(jié)果異常等玄學(xué)問(wèn)題。stdint.h提供了三組東西固定寬度整數(shù)類型intN_t/uintN_t、最小/最快寬度類型int_leastN_t、int_fastN_t、以及一些輔助宏INT_MAX、PRId64等。使用這些類型程序的行為就不會(huì)跟隨平臺(tái)自動(dòng)漂移。比如定義一個(gè)網(wǎng)絡(luò)包頭結(jié)構(gòu)體用uint32_t字段替代unsigned int就能確保它在所有編譯環(huán)境下都是4字節(jié)而不是有的平臺(tái)4字節(jié)、有的平臺(tái)8字節(jié)。還有一點(diǎn)容易被忽略intptr_t和uintptr_t是用來(lái)保存指針值的整數(shù)類型。在32位程序里它是32位在64位程序里它是64位。如果你在做哈?;蛘甙阎羔槷?dāng)作數(shù)值運(yùn)算這個(gè)類型就是標(biāo)準(zhǔn)答案。在老編譯器上這些類型全都要靠自己typedefmsinttypes一次性幫你補(bǔ)齊。2.3 三種替代方案對(duì)比面對(duì)缺少stdint.h的編譯器你其實(shí)有三條路可以走。我根據(jù)自己的維護(hù)經(jīng)驗(yàn)列一張對(duì)比表方案優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)景自己寫(xiě)一個(gè)自定義stdint.h完全可控?zé)o外部依賴容易寫(xiě)錯(cuò)類型寬度需要維護(hù)只有一個(gè)臨時(shí)工程代碼量極小用msinttypes補(bǔ)齊標(biāo)準(zhǔn)實(shí)現(xiàn)直接可用社區(qū)驗(yàn)證過(guò)需要額外引入文件不能自動(dòng)更新絕大多數(shù)跨平臺(tái)移植和開(kāi)源代碼編譯升級(jí)編譯器或換用其他工具鏈治本后續(xù)無(wú)需擔(dān)心C99特性可能牽動(dòng)老項(xiàng)目ABI成本高新項(xiàng)目或允許改動(dòng)編譯環(huán)境的場(chǎng)景我一般會(huì)推薦第二種。原因很簡(jiǎn)單自己寫(xiě)stdint.h你得考慮32位/64位、要不要兼容無(wú)符號(hào)、還要定義各種宏細(xì)節(jié)多到容易翻車。而且一旦有多個(gè)源碼目錄每個(gè)工程都塞一份自定義頭文件維護(hù)起來(lái)就是噩夢(mèng)。msinttypes經(jīng)過(guò)多年修補(bǔ)對(duì)老編譯器的兼容性做得比較完善r26這個(gè)版本我用了幾年沒(méi)出過(guò)岔子。選擇它還有一個(gè)隱性好處源碼不用再寫(xiě)一堆“#ifdef _MSC_VER”繞道代碼了。整個(gè)工程在一個(gè)統(tǒng)一的頭文件視角下編譯后續(xù)如果想切換到新編譯器直接把msinttypes從包含路徑里移除就行代碼不需要?jiǎng)?。這種“后悔藥”的效果經(jīng)歷過(guò)老工程現(xiàn)代化改造的人都懂。再說(shuō)說(shuō)和標(biāo)準(zhǔn)C語(yǔ)言的對(duì)應(yīng)關(guān)系。stdint.h還定義了一組寬度宏比如INT8_C、INT16_MAX這些在初始化常量時(shí)非常有用。例如你想定義一個(gè)恰好等于INT32_MAX的宏常量直接寫(xiě)#define LIMIT INT32_C(2147483647)比起手動(dòng)算0x7FFFFFFF更清晰。msinttypes里也完整實(shí)現(xiàn)了這些宏而且針對(duì)老編譯器可能不支持的部分做了變通。如果你之前只關(guān)注了類型定義忽略了這些宏那在寫(xiě)可移植代碼時(shí)可能會(huì)踩坑。另外inttypes.h里還有strtoimax、strtoumax等函數(shù)聲明以及printf格式宏P(guān)RId32、PRIu64。在Windows上用printf打印長(zhǎng)整型常用的做法是%I64d但這些是非標(biāo)準(zhǔn)擴(kuò)展。用了inttypes.h就可以寫(xiě)PRId64代碼在Linux和Windows上都能編譯不用再為格式化字符串傷腦筋。這個(gè)細(xì)節(jié)在移植串口調(diào)試代碼時(shí)尤其常見(jiàn)。3. msinttypes-r26上手三步配好編譯器包含路徑3.1 解壓看結(jié)構(gòu)里面到底有什么下載下來(lái)的壓縮包體積很小解壓后一多半是說(shuō)明文檔和測(cè)試代碼真正核心的文件只有兩個(gè)stdint.h和inttypes.h。我以r26版本為例列出常用的文件清單文件作用stdint.h定義全部整數(shù)類型和大小限制宏inttypes.h定義格式化宏和轉(zhuǎn)換函數(shù)聲明LICENSEBSD風(fēng)格的開(kāi)源許可README使用說(shuō)明和版本歷史這里的文件結(jié)構(gòu)很干凈不需要額外安裝腳本。你需要做的就是把整個(gè)解壓目錄加入編譯器的頭文件搜索路徑。一個(gè)常見(jiàn)的做法是把該目錄復(fù)制到工程目錄下的third_party/msinttypes或者放到一個(gè)公共的依賴庫(kù)目錄里比如D:\dev\include。復(fù)制好之后建議用文本編輯器打開(kāi)stdint.h確認(rèn)文件開(kāi)頭包含“#ifdef _MSC_VER”之類的條件編譯代碼。msinttypes在內(nèi)部會(huì)根據(jù)_MSC_VER宏判斷編譯器版本再?zèng)Q定是否啟用typedef。比如在VC6這樣的老古董上它走一套完全不同的定義。如果你用較新的編譯器它也會(huì)自覺(jué)避免和系統(tǒng)自帶的stdint.h沖突。3.2 通過(guò)IDE屬性頁(yè)配置包含路徑最常見(jiàn)的使用方式是在Windows IDE里打開(kāi)項(xiàng)目屬性進(jìn)行配置。操作路徑是項(xiàng)目右鍵-屬性-C/C-常規(guī)-附加包含目錄。點(diǎn)開(kāi)編輯框手動(dòng)輸入msinttypes所在的目錄路徑或者點(diǎn)旁邊的下拉按鈕選“編輯”再點(diǎn)文件夾圖標(biāo)瀏覽目錄。配置完成后記得先把語(yǔ)言標(biāo)準(zhǔn)設(shè)置成“未設(shè)置”或C89兼容模式否則某些IDE可能強(qiáng)行走新的頭文件搜索邏輯。這里有個(gè)容易忽略的點(diǎn)附加包含目錄的作用范圍是當(dāng)前項(xiàng)目配置不是全局的。如果你同時(shí)維護(hù)Debug和Release兩個(gè)配置并且都在用老編譯器兩邊都得添加一次。我見(jiàn)過(guò)有同事只改了DebugRelease還在報(bào)C1083糾結(jié)了半天最后發(fā)現(xiàn)是這條路沒(méi)走全。建議在屬性頁(yè)頂部的“配置”下拉框選擇“所有配置”一勞永逸。配置完成后清理并重新編譯整個(gè)工程。如果原來(lái)的報(bào)錯(cuò)是“未找到stdint.h”此時(shí)應(yīng)該消失。如果還報(bào)錯(cuò)看看錯(cuò)誤消息里的文件路徑是否指向了別的位置的stdint.h。這里容易中招的是項(xiàng)目里某個(gè)第三方庫(kù)也帶了一個(gè)stdint.h并且它的目錄在附加包含目錄列表里排在更前面那編譯器找到的就不是msinttypes的版本。關(guān)于這個(gè)路徑配置還有一個(gè)小技巧把msinttypes目錄放在附加包含目錄列表的最前面。這樣能保證優(yōu)先級(jí)最高避免和其他庫(kù)頭文件混戰(zhàn)。列表順序在屬性頁(yè)里可以直接上下移動(dòng)值得養(yǎng)成習(xí)慣。3.3 通過(guò)命令行cl.exe直接配置不進(jìn)IDE直接用命令行編譯的情況也非常多。比如用cl.exe配合Makefile、批處理腳本或CMake。此時(shí)只需要多傳一個(gè)/I參數(shù)告訴編譯器在哪里找頭文件。cl /I D:\dev\include\msinttypes /Tc test_stdint.c這里的 /I 是附加包含目錄的短參數(shù)后緊跟目錄路徑。如果路徑有空格必須用雙引號(hào)包起來(lái)。/Tc 表示把后續(xù)文件當(dāng)作C語(yǔ)言源碼編譯如果想編譯C代碼改成 /Tp 或直接給.cpp擴(kuò)展名。執(zhí)行后如果沒(méi)報(bào)錯(cuò)會(huì)在同目錄下生成test_stdint.obj文件。有些項(xiàng)目用的是nmakeWindows下的make工具那就在Makefile里設(shè)置CFLAGS變量加上該路徑。示例CFLAGS /nologo /ID:\dev\include\msinttypes /W3這里 /W3 是警告級(jí)別按需調(diào)整。在Makefile里寫(xiě)路徑時(shí)要注意反斜杠和引號(hào)的轉(zhuǎn)義習(xí)慣nmake對(duì)這些相對(duì)寬松但遇到空格時(shí)一定要引號(hào)閉合。如果你是在PowerShell或CMD里臨時(shí)測(cè)試不想加進(jìn)工程配置也可以直接用環(huán)境變量INCLUDE來(lái)臨時(shí)注入。命令行設(shè)置方式如下set INCLUDE%INCLUDE%;D:\dev\include\msinttypes這個(gè)命令的作用范圍是當(dāng)前控制臺(tái)窗口不會(huì)改動(dòng)系統(tǒng)級(jí)配置適合快速驗(yàn)證。Windows的編譯器在查找頭文件時(shí)會(huì)先查命令行參數(shù)指定的路徑再查環(huán)境變量INCLUDE所指的路徑。所以如果你的INCLUDE已經(jīng)包含了一個(gè)有stdint.h的地方可能不生效這時(shí)需要檢查順序。3.4 集成到CMake工程用CMake組織的跨平臺(tái)工程配置msinttypes比手動(dòng)改項(xiàng)目屬性要優(yōu)雅得多。你不需要碰IDE的界面只要在CMakeLists.txt里加上一行include_directoriesinclude_directories(${PROJECT_SOURCE_DIR}/third_party/msinttypes)這行代碼把msinttypes目錄加入所有編譯目標(biāo)的頭文件搜索路徑。需要確保該目錄實(shí)際存在于源碼樹(shù)中并且路徑名稱與目錄真實(shí)名稱一致。如果你的構(gòu)建系統(tǒng)是從網(wǎng)上下載依賴還可以考慮用FetchContent模塊在配置階段自動(dòng)下載但這里不建議因?yàn)轭^文件本身不依賴網(wǎng)絡(luò)直接隨源碼分發(fā)更省事。CMake中還有一個(gè)細(xì)節(jié)MSVC的編譯器在編譯C文件時(shí)會(huì)自動(dòng)開(kāi)啟C89模式編譯C時(shí)不會(huì)受到影響。如果你的CMake項(xiàng)目里同時(shí)有C和C文件并且在C代碼中也用了stdint.hmsinttypes是可以起作用的因?yàn)镃里同樣會(huì)include頭文件。唯一要注意的是如果你設(shè)置了標(biāo)準(zhǔn)庫(kù)強(qiáng)制使用Windows DLL運(yùn)行時(shí)即/MD或/MT開(kāi)關(guān)那msinttypes和這些宏是獨(dú)立的互不影響。如果項(xiàng)目還使用了預(yù)編譯頭PCH記得在預(yù)編譯頭文件如stdafx.h里#include stdint.h否則每個(gè).cpp文件單獨(dú)include也可以但會(huì)拖慢編譯。工程里如果已有預(yù)編譯頭而你在某個(gè).cpp里直接#include stdint.h某些IDE會(huì)提示需在預(yù)編譯頭之后include此時(shí)調(diào)整一下順序即可。4. 驗(yàn)證stdint.h生效從編譯通過(guò)到類型寬度一致4.1 一個(gè)專門驗(yàn)證固定寬度類型的示例代碼配置完成后直接拿一個(gè)大項(xiàng)目編譯風(fēng)險(xiǎn)太大我習(xí)慣先寫(xiě)一個(gè)最小的驗(yàn)證文件專門檢驗(yàn)頭文件有沒(méi)有生效、類型寬度是否符合預(yù)期。#include stdio.h #include stdint.h #include inttypes.h int main(void) { printf(sizeof(int32_t) %zu\n, sizeof(int32_t)); printf(sizeof(uint64_t) %zu\n, sizeof(uint64_t)); printf(sizeof(intptr_t) %zu\n, sizeof(intptr_t)); int32_t a INT32_C(100); uint64_t b UINT64_C(0x1122334455667788); printf(a % PRId32 , b % PRIx64 \n, a, b); return 0; }這段代碼里用到了三組東西固定寬度類型sizeof檢查、INT32_C宏常量、以及PRId32/PRIx64格式化宏。如果頭文件路徑正確編譯后會(huì)輸出類似這樣的內(nèi)容sizeof(int32_t) 4 sizeof(uint64_t) 8 sizeof(intptr_t) 4 a 100, b 1122334455667788注意第三行如果編譯出來(lái)的程序是32位的intptr_t就是4字節(jié)如果是64位會(huì)是8字節(jié)。這行輸出能幫你確認(rèn)編譯目標(biāo)環(huán)境。格式化宏P(guān)RId32在Windows的老編譯器上會(huì)展開(kāi)成“d”P(pán)RIx64會(huì)展開(kāi)成“I64x”這兩個(gè)宏正是inttypes.h里的關(guān)鍵內(nèi)容。4.2 通過(guò)編譯日志確認(rèn)頭文件實(shí)際路徑有時(shí)候編譯通過(guò)了但心里還是不踏實(shí)想知道編譯器到底用的是哪個(gè)目錄下的stdint.h。這時(shí)候可以采用預(yù)處理指令強(qiáng)制輸出路徑信息。最簡(jiǎn)單的方法是讓編譯器生成預(yù)處理文件。cl /I D:\dev\include\msinttypes /E test_stdint.c preprocessed.txt這里的 /E 是預(yù)處理后輸出到標(biāo)準(zhǔn)輸出重定向到文本文件。打開(kāi)preprocessed.txt搜索“stdint.h”就會(huì)看到完整的頭文件路徑。例如#line 1 D:\\dev\\include\\msinttypes\\stdint.h這一行說(shuō)明編譯器確實(shí)使用了你指定的msinttypes版頭文件。如果你看到路徑是某個(gè)Windows SDK目錄或者項(xiàng)目目錄下的其他頭文件那就說(shuō)明搜索順序有問(wèn)題需要回到第3章調(diào)整路徑順序。除了 /E還可以在代碼里用#pragma message直接把頭文件路徑打印到編譯輸出窗口。這個(gè)方法適合在IDE里使用因?yàn)榫幾g器輸出會(huì)直接顯示在“輸出”面板中不用生成中間文件。#ifdef _MSC_VER #pragma message(using msinttypes stdint.h) #endif把這段放在一個(gè)共同的私有頭文件里或者直接放在測(cè)試代碼頂部編譯時(shí)就能看到提示。注意#pragma message是編譯器擴(kuò)展不是標(biāo)準(zhǔn)C語(yǔ)言所以外面包了一層條件編譯避免其他編譯器報(bào)錯(cuò)。4.3 在Makefile和批處理腳本里復(fù)用的細(xì)節(jié)如果你的工程是用Makefile組織的或者你更喜歡批處理腳本一鍵編譯驗(yàn)證邏輯也可以嵌進(jìn)腳本里。我自己的習(xí)慣是寫(xiě)一個(gè)check_stdint.bat腳本在配置階段自動(dòng)運(yùn)行上面的預(yù)處理命令并檢查輸出里是否出現(xiàn)了預(yù)期的路徑標(biāo)記。echo off cl /I D:\dev\include\msinttypes /E test_stdint.c tmp_pre.txt findstr /C:msinttypes\stdint.h tmp_pre.txt nul if errorlevel 1 ( echo [FAIL] stdint.h not from msinttypes exit /b 1 ) echo [OK] stdint.h found from msinttypes del tmp_pre.txt這個(gè)腳本的邏輯很簡(jiǎn)單用findstr檢查預(yù)處理輸出里是否包含“msinttypes\stdint.h”字符串找到了就返回成功否則輸出失敗并退出。批處理通過(guò)errorlevel判斷可以在構(gòu)建流水線里集成。對(duì)于使用GCC或Clang但也在Windows上交叉編譯的場(chǎng)景同樣可以用#error預(yù)處理指令做更硬的驗(yàn)證。例如在測(cè)試代碼里加入#ifndef INT32_MAX #error stdint.h does not define INT32_MAX #endif當(dāng)INT32_MAX沒(méi)有被定義時(shí)編譯直接終止并顯示錯(cuò)誤信息。這種編譯期驗(yàn)證方式比人工看日志更快適合自動(dòng)化集成。注意這里的宏定義名必須和實(shí)際頭文件一致msinttypes里確實(shí)定義了這些宏。5. 避坑指南C1083之外的五種常見(jiàn)翻車現(xiàn)場(chǎng)這一章是重頭戲我根據(jù)自己踩過(guò)的坑和幫同事排查的經(jīng)驗(yàn)整理了五條最容易遇到的錯(cuò)誤。5.1 坑1和其他庫(kù)自帶的stdint.h打架現(xiàn)象編譯時(shí)報(bào)一堆標(biāo)準(zhǔn)庫(kù)頭文件重復(fù)定義錯(cuò)誤錯(cuò)誤列表中全是“redefinition of typedef ‘int32_t’”、“missing type specifier”等字樣錯(cuò)誤數(shù)量能達(dá)到幾十條。原因項(xiàng)目里某個(gè)第三方庫(kù)自己攜帶了一個(gè)stdint.h或者系統(tǒng)SDK的新版本已經(jīng)包含了該頭文件。由于多個(gè)目錄都存在stdint.h編譯器按照搜索順序找了一個(gè)不期望的版本兩個(gè)標(biāo)準(zhǔn)庫(kù)的內(nèi)容彼此沖突。解決找到工程中所有名為stdint.h的文件確認(rèn)msinttypes的目錄是否在搜索列表最前面。可以在屬性頁(yè)中調(diào)整順序或者通過(guò)在C/C命令行中加入?yún)?shù)指定強(qiáng)制使用msinttypes的路徑。如果第三方庫(kù)的頭文件必須優(yōu)先那就只能手動(dòng)把庫(kù)自帶的stdint.h改名并把庫(kù)源碼里對(duì)應(yīng)的#include聲明一并修改。更穩(wěn)妥的辦法是用編譯開(kāi)關(guān)查看預(yù)處理搜索路徑先確認(rèn)到底誰(shuí)被優(yōu)先找到了。5.2 坑2類型寬度和預(yù)期不一致現(xiàn)象代碼編譯通過(guò)但運(yùn)行時(shí)的結(jié)構(gòu)體大小、序列化字節(jié)數(shù)和Linux同事不一樣調(diào)試半天發(fā)現(xiàn)uint32_t變成了8字節(jié)。原因某些老的msinttypes版本在特定編譯器上沒(méi)有正確區(qū)分指針類型的寬度導(dǎo)致定義錯(cuò)誤。也可能是因?yàn)榫幾g器選項(xiàng)里啟用了/arch:IA32或強(qiáng)制4字節(jié)對(duì)齊等設(shè)置讓類型對(duì)齊發(fā)生變化。解決先用第4章的驗(yàn)證程序打印sizeof確認(rèn)寬度。如果確實(shí)是頭文件定義問(wèn)題檢查是否使用了正確版本r26對(duì)64位和32位分別做了分支處理。再檢查編譯選項(xiàng)里是否定義了_WIN32或_WIN64宏msinttypes內(nèi)部依賴這些宏做位寬分支。在編譯命令行中手動(dòng)添加/D_WIN64可以強(qiáng)制走64位路徑。我遇到過(guò)最詭異的一次是工程屬性里的“平臺(tái)工具集”被誤設(shè)成了32位導(dǎo)致所有源文件都被當(dāng)作32位編譯加上/D_WIN64之后反而報(bào)宏重定義最后發(fā)現(xiàn)是工具集版本不匹配。5.3 坑3C代碼能編譯但C代碼報(bào)錯(cuò)現(xiàn)象同一個(gè)工程.c文件編譯正常.cpp文件卻報(bào)“stdint.h: No such file or directory”或語(yǔ)法錯(cuò)誤錯(cuò)誤行指向頭文件內(nèi)部的某個(gè)宏。原因老編譯器在編譯C時(shí)對(duì)C99頭文件的支持路徑不同。msinttypes的頭文件內(nèi)部包含了一些條件編譯比如“#ifndef __STDC_LIMIT_MACROS #error ...”這個(gè)錯(cuò)誤只在C中觸發(fā)因?yàn)镃標(biāo)準(zhǔn)規(guī)定這些宏默認(rèn)不暴露。解決在C源文件包含stdint.h之前先定義必要的宏。一般處理是在工程屬性中加上預(yù)處理器定義/D__STDC_LIMIT_MACROS /D__STDC_CONSTANT_MACROS這兩個(gè)宏是C標(biāo)準(zhǔn)里用來(lái)把C99的宏暴露給C的開(kāi)關(guān)。msinttypes也遵守這個(gè)約定。加上之后C代碼中就能正常使用INT32_MAX和UINT64_C等宏了。如果仍報(bào)錯(cuò)檢查頭文件內(nèi)部是否還有__STDC_FORMAT_MACROS需要定義用于獲取printf格式化宏。這個(gè)宏在C里同樣默認(rèn)關(guān)閉忘記加的話PRId64會(huì)直接缺定義。5.4 坑4路徑配置正確但還是提示找不到stdint.h現(xiàn)象項(xiàng)目屬性里明明加了附加包含目錄編譯時(shí)依然報(bào)C1083。原因三種典型原因。一是配置的是“調(diào)試信息”而不是“包含路徑”二是配置的路徑下沒(méi)有對(duì)應(yīng)的文件比如解壓后把文件夾嵌套了一層三是IDE緩存問(wèn)題清理不徹底。解決先用系統(tǒng)文件搜索確認(rèn)完整路徑比如D:\dev\include\msinttypes\stdint.h確實(shí)存在。然后檢查屬性頁(yè)的“附加包含目錄”填寫(xiě)是否就是該目錄不要把“include\msinttypes”多寫(xiě)或少寫(xiě)。還要關(guān)注配置類型如果是同一個(gè)工程包含靜態(tài)庫(kù)和DLL項(xiàng)目每個(gè)子項(xiàng)目都要各自配置。最后嘗試關(guān)閉IDE重開(kāi)或者清理中間文件。我甚至見(jiàn)過(guò)有人把路徑寫(xiě)成了“D:\dev\include\stdint.h”少了msinttypes這一層自然找不到。這個(gè)坑看似低級(jí)但忙亂的時(shí)候很容易犯。5.5 坑5inttypes.h中的格式化宏導(dǎo)致printf警告現(xiàn)象用PRId64打印int64_t變量時(shí)編譯器報(bào)格式字符串參數(shù)類型不匹配的警告。警告級(jí)別開(kāi)得越高報(bào)得越多甚至直接導(dǎo)致編譯失敗。原因老編譯器對(duì)printf系列的格式化檢查識(shí)別不了自定義宏或者宏展開(kāi)后是“I64d”這種非標(biāo)準(zhǔn)格式編譯器的警告級(jí)別過(guò)高時(shí)會(huì)產(chǎn)生警告。這個(gè)警告不影響生成但會(huì)讓追求0警告的工程無(wú)法通過(guò)。解決把警告級(jí)別從/Wall降到/W3或者在包含inttypes.h之前定義__STDC_FORMAT_MACROS宏。在老編譯器上也可以直接使用系統(tǒng)擴(kuò)展格式符號(hào)比如printf(value%I64d\n, (long long)value);不過(guò)這樣就犧牲了可移植性。我的做法是在工程級(jí)統(tǒng)一加一個(gè)頭文件提前定義好宏并設(shè)置#pragma warning抑制掉特定的警告編號(hào)。記住一個(gè)原則寧可多花十分鐘把所有格式化宏檢查一遍也別等到集成測(cè)試時(shí)才發(fā)現(xiàn)日志亂碼。6. 進(jìn)階驗(yàn)證用靜態(tài)斷言確保類型寬度不再漂移6.1 在編譯期鎖死寬度當(dāng)你給老工程配上msinttypes之后編譯通過(guò)只是第一步我更建議在代碼里加上編譯期靜態(tài)斷言把類型寬度徹底鎖死。C語(yǔ)言中沒(méi)有標(biāo)準(zhǔn)靜態(tài)斷言可以用typedef數(shù)組技巧typedef char assert_int32_size[ (sizeof(int32_t) 4) ? 1 : -1 ];如果int32_t不是4字節(jié)這個(gè)typedef會(huì)定義一個(gè)長(zhǎng)度為-1的數(shù)組導(dǎo)致編譯錯(cuò)誤。C99后的編譯器可能支持_Static_assert但老編譯器不支持所以這個(gè)技巧更穩(wěn)。把它放在一個(gè)公共頭文件里所有模塊都會(huì)檢查到。6.2 用預(yù)處理宏輸出當(dāng)前環(huán)境在排錯(cuò)時(shí)經(jīng)常需要確認(rèn)當(dāng)前編譯器模式。以下代碼可以把關(guān)鍵宏打印在編譯輸出中#ifdef _MSC_VER #pragma message (MSVC version: STRINGIFY(_MSC_VER)) #endif需要配合一個(gè)字符串化宏#define STRINGIFY(x) #x這條pragma只在MSVC下生效GCC對(duì)應(yīng)的是#warning但也不妨礙體驗(yàn)。加上之后每次編譯都能看到版本號(hào)省去猜謎時(shí)間。6.3 我的自查流程從那以后我每次把一個(gè)新工程移植到Windows都會(huì)強(qiáng)制走一遍這個(gè)流程先跑一個(gè)最小的stdint驗(yàn)證程序確認(rèn)類型寬度再檢查INT32_MAX、PRId64這些宏是否可用最后用上面的靜態(tài)斷言把類型鎖死在公共頭文件里。等這一套做完我才敢繼續(xù)編譯主體代碼。經(jīng)歷過(guò)因?yàn)橐粋€(gè)類型寬度不一致導(dǎo)致整個(gè)協(xié)議棧解析錯(cuò)亂的事故就再也不想省這一步了。希望這些細(xì)節(jié)能幫到你讓你在Windows上遇到stdint.h問(wèn)題時(shí)少走我當(dāng)初的彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久久久久久9| 67914亚洲精品| 亚洲图片 激情小说| 密乳AV免费观看| 中文字幕人乱码中文字的预防方法| 日本色色色视频| 日韩干B| 91在线无码精品秘 软件| 97资源久久| 夜夜国自区| 精品四五区| 亚洲影院无码在线| 超碰97久| 十八禁电影伊人网| 91jk色拍| 亚洲综合春色| 日本人体九九九九九九| 国产精品久久久久亚洲av| 日韩av熟女一区二区三区成人| 国产隔壁老王影院在线| 日韩免费av片高清无码| 亚洲色图欧美色图另类图片| 精品二区久久| 精品综合久久久久久97| 曰韩少妇无码| 色婷婷在线视频| 成人麻豆av电影网站| 国产综合久久久麻桃个| 亚洲欧洲视频小说在线观看| 国产91久久九九免费精品无码| 校园春色 亚洲| 色婷婷淫色网| 北条麻妃99精品青青久久| 无码视频黄色网战| 伊人久操| 性在久久久久久| 91视频综合网| 亚洲一二三四区在线免费看视频| 吉川爱美亚洲二区在线| 日本三级日本三级三级人妇四虎| 男人夜色天堂ss| 91在线精品| 精品无码久久久久久国产浪潮| 久久色精品视频在线| 青青草久久在线| 亚州大图综合色图| 国产精品久久久久久久久久久久久久吹 | 秋霞曰韩R级| 一区操逼| 福利社区午夜一区二区| 国产啊v在线免费播放| 不卡在线观看视频| 新亚洲无码| 97视频免费播放| 中文字幕福利视频一区二区三区在线观看| 91 亚欧| 快播久久人人aV| 大屁股熟女一区二区三区| 人妻在线大香蕉| 精品久久久久黄少妇| AA丁香综合激情| 一区二区偷拍拍视频| 91久久精品蜜臀| 大香蕉在线86| 风月影院十八禁| 天天亚洲| 天天日天天干天天整| 蜜乳AV一区二区三区四| 嗯啊啊啊轻点视频| 一级免费精品| 在线人成亚洲视频免费观看| 最新日产中文在线麻豆| 蜜臀在线免费观看在线免费观看| 亚洲在线观看| 天天插夜夜操| juliaann精品熟女一区| 偷窥自拍亚洲| 日韩 欧美 视频 在线 一区| 91精品电影18| 精品少妇一区二区| 一区操逼| 91色噜噜狠狠| 2017,超碰| 国产精品日韩在线一区| 麻豆乱码久久精| 吊色| 日韩综合成人免费视频| 熟妇精品juliaannAV| 人人九九精| 美女久久久| 天天操天天舔| 欧洲小说色图视频另类| 91综合色噜噜| 超碰97资源大奶| 91亚洲欧美综合高清在线| 91欧美经典| 蜜乳av一区二区| 99久久九九| 黑人与人妻| 亚洲黄色| 夜夜草网站| 艾草av| 人妻丰满熟妇av无码区蜜桃| 亚洲高清无码在线桃色| 人人超碰在线观看黄| 日韩猛交| 一区二区三区精品视频| 亚洲视频小说| 亚洲网站一区二区在线| 大奶啊啊好爽 | 小说区 图片区色 综合区| 在线无码操| 曰本91情色| 亚洲一区二区三区在线激情| 日韩在线视频1234| 午夜精品久久久久久久第一页按摩| 国产在线激情视频| 国产中文福利| 久草尤物| 成人网欧美风情| 久久精品国产亚洲粉嫩| 国产在线视视频有精品| 亚洲丝袜少妇在线| 日本久操视频| 亚洲97成人在线观看| 91neishe| 9久在线视频只有精品| 久久婷综合| 天天天操天天天爱| 韩国一级婬片A片AAAAA| 中文字幕99999| 婷婷操逼| 欧美伊人久久综合网| 特级大荫道BBwBBwBBW| 校园春色五月天| 丁香五月婷婷啪啪| 91 欧美| 很很干很很操| 成人蜜乳小视频网站| 在线人妻熟女一区二区三区四区五区| 蜜乳中文字幕a在线| 大吊色| 久久性爱精品一区| www.av不卡中文字幕| 欧美成人黄网色网站| 日本熟妇自慰性高潮一区二区三区| 国产一区二区三三视频| 91人妻久久久久久久久久久久久| 日夜啪电影| 中国人高清www色视频免费| 天天爽天天| 亚洲欧美另类激情小说 | 试看日韩黄片| 日韩中文9| 亚洲激情综合| 亚洲成a人在线观看久| 日日日大屁股骚女人精品| 亚洲欧洲国产综合av| 久久久精品网| 加勒比色99999| 国产性感在线观看| 欧美一区二区亚洲天堂| 国产99精品一区二区三区免费| 国产人妻精品一区二区三区秋霞| 九色 人妻 大香蕉| av日韩在线观看电影| 亚洲资源站| 97干天天| 99久久com免费视频′| 先锋激情∨在线视频播放| 人人九九精| 人人色人人射人人妻| 国产av强奸美女| 精品少妇99| 99蜜桃臀久久久欧美精品网站| 一区二区三区精品久久| а√天堂资源官网在线资源| 黑人在线91| 97这里只精品| 成人AV素股で擦久久| 久久久久9| 欧美性生活免费网| a片自拍直播视频| 九九九偷拍| 久久男人网| 天天日天天插| 免费作爱一级视频| 国产精品爱欲| 秋霞操逼片| 大香蕉伊人75| 欧美精品系列| 国产九九九九九九| 大肉棒导航| 欧美永久激情一区二区| 人人爽天天爽| 花野真衣| 97色伦欧美| 啪啪啪大香蕉| 韩国一级婬片A片AAAAA| www.91理论| 成 人 A V免费视频在线观看| 亚洲欧美综合图片| 97视频在线观看网站| 欧美另类自拍| 91网亚洲| 1024手机看片欧美日韩| 久久99精品九九久久久婷婷| 久草精品视频| 中文熟女五十乱码在线| 9ⅰ久久久天天| 夫妻AV网站| 青青草久久在线| 久久久久久久六六| 青青伊人这里只有精品| 91在线/欧洲| 神马久久久久久久久久| 欧美精品,四区。五区| 欧美一二级| 久久华人网| 浓厚中出中文字幕在线| 密乳视频在线| 亚洲黄色视频在线观看视频| A 天堂在线观看视频| 综合久久六月久久婷婷| 91|九色|国产熟女| 国产精品久久久久久夜夜夜| a人欧美综合天堂麻豆| 九一精品牛牛一区二区| 亚洲色棕合| julia国产在线 | 一区二区激情国产熟女| 人妻在线中出视频| 久久久成人免费av电影| 久久综合97| 久久夜夜| 在线观看色视频| 国产成人www免费人成看片| 大香蕉九九| 日本天天吊| 我中文字幕6区 | 国内毛片免费h片在线| 丰满的三级少妇欧美久久久| 国精品一区二区三| 亚洲熟女乱色一区二区三区久久久| 天美久久久久| 波多野结衣先锋影音| 凹凸视频特色日本特黄| 美女黄页| 久久伊人东京热| 亚洲āv网址在线观看| 亚洲综合另类小说色区亚洲成av人片在www | av黄图片在线观看| 国产AV激情无码久久无码| 婷婷久久综合久| 草久久久| 日韩av性爱在线播放| 噜噜噜在线视频| 欧美在线视频99| 色呦呦、国产精品| 搡老女人老熟女91老熟女综合网| 日韩欧美tv一区二区在线观看| 在线观看综合精品亚洲| 男人天堂2030| 人妻在线臀日韩| 亚洲欧洲精品视频发布| 又黑又大又粗| 亚洲色人阁| 又大又长又粗又爽又黄| 久久色一区| asc国产精品| 无码精品久久久久久亚洲| 三级色综合| 亚洲天堂电影精品一区| 亚洲天堂另类| 日本精品第一视频在'| 久久6热精品99视频| 69视频入口| 九九热九九| 久久久男人的天堂| 青娱乐国产精品| 鸥美插入视频| 乱操乱伦AV| 欧美成人9797| 久久99国产精品| 三级片网站在线播放| 操学生天天| 四虎国产精品永久在线囯在线| 久久久 国产精品| 91九九九小逼| 午夜超爽| 欧美精品偷拍| 日韩综合成人免费视频| 淫乱图区 | 久久久精品网| www.zbzhongsen.com| 中文字幕无码不卡啪啪| 国产尹人在线视频免费| 91精品操美女| 欧美亚州手机在线| 99精品丰满人妻无| 国产精品夜夜夜| 97综合激情| 国产熟妇一区二区| 激情小说亚洲图片| 亚洲精品 欧美精品| 亚洲drav色图| 亚洲女人毛茸茸91| 97亚洲综合在线| 美女9118禁| 大香交| 中文一区二区三区影院| 精品一区二区久久| 人人色人人操在线| 亚洲综合20p| 你草精品在线视频| 91网站18在线| 一区二区三区黄色片a| 欧美一二在线| 中国一级操逼视频| 91色s| 久久久精品无码亚免费| 色色97爱| 久久久久日本视| 热思思免费视频| 1二区9| 手机在线视频国内精品| 青青操日韩| 欧洲色色| 日韩色欲久久一二三四区| 国产视频大全| 狠狠狠一区二区三区| www.99色| 久久九九精品一区二区 | 亚洲天天影视综合网| 美女操逼福利视频| 欧美色图亚洲色| 日韩在线97| 欧美麻豆成人同性GⅤ在线| 加勒比99999| 欧美亚洲丝袜美女电影| 欧美性爱精品一区二区| 人妻三级在线中文字幕| 91日日夜夜| 玖玖综合.com| 国产综合网站在线播放| A级在线视频| 99re在线视频这里只有精品| 高清不卡视频| 中文激情网| 狠狠婷婷亚洲中文综合久久| 欧美一级二级三级| 偷拍片久久| 国产精品对白内射| 又黄又爽在线观看视频| 欧美亚洲尤物久久| 日韩电影在线观看网址| 国产精品日日摸天天碰| 国产久久一区二区| 久久人妻四季| 国产乱码久久| 日本中文字幕在线视频| 搡老人老9丨女老熟人| 试看60秒 爽| 国产成人啪一区二区| 亚洲天堂另类小说男人| 久久精精区一区二区一蜜桃一区二区| 在线观看色视频| 亚洲影院无码在线| 超碰欧美| 欧美 精品国产制服第一页| 67914在线兔费成人视频| 日韩少妇无吗| 美女主播色欲91抠b在线播放| 久久久久久午夜男人的天堂| 超碰人人草| 亚洲最大AV网| 日本激情免费大片| 女人午夜视频777| 中文字幕日韩人妻视频| 亚洲春色欧美激情自拍| 免费观看性欧美一级| 日韩三级伦理中文字幕| 亚洲阿v天堂在线| 国产久久久久久| 人妻丝袜日本| 欧亚日韩一区在线| 草草电影院| 中国一级αV| 97视频在线看| 亚洲伊人久久综合97| 神马久久久久久| 亚洲男人综合| 911av网站免费观看| 成人性爱av.com| 做爱A级亚欧| 亚洲第一狼人丝袜美女另类| 欧美国产伊人久久久久| 在线国产探花| 日韩素人无码一区二区三区三州| 久久宗合97| 久艹99| 日韩综合第八区国产精品| 欧美肥臀在线| 啊啊嗯嗯好爽| 亚洲无码超碰免费| 日本人人操人人操| 亚洲精品视频二区| 午夜福利久久久噜久噜久久综合| 青青草精品| 91 国产丝袜在线播放-百度| 亚洲AV不卡在线观看| 久久久久女教师免费一区 | 日本午夜福利影院| 97网址www| 熟女欧美日韩综合婷婷| 日本精品九九九| 大香久久| 成人性爱av| 人成午夜免费大片| 无码欧美有限公司| 男人的天堂无码| 婷婷丁香人妻 | 91国产丝袜足交精品视频| 欧亚日韩三区| 精品无码少妇| 樱花蜜乳av| 丁香六月激情综合| 天天综合网AV91| 亚洲男人天堂手机版| 自拍偷拍第26| 99只有精品| 日韩中文字幕av在线播放| 久久久久久中文| 91视频精品| 久久露脸国产老熟女| 国产夜夜艹| 死我十八禁| 国产福利一区二| 日本在线激情一区二区三区| 久久久久久久久久黄色网| 97精品全部| 日本午夜操逼| 天天做天天爱天天爽AV| JuliaAnn丝袜熟女系列| 人妻日日干| 精品一区二区三区最新| 一区二区三区不卡视频| 久久98| 91精品婷婷国产综合久久竹菊| 少妇的嫩逼图片| 成人麻豆av电影网站| 日本不卡卡一区| 男人天堂毛片| 搡老熟女老女人老熟妇免费视频| 大香蕉一人在线| 凹凸视频在线一区二区| 另类图片五月| 久久人| 色婷婷综合视频| 91亚洲欧美综合高清在线| 日韩操p| 天天综合精品| 亚洲国产精品成人久久蜜臀| 五月天激情国产综合婷婷婷| 99少妇内射| 国产伦乱91| 美女91色黄18| 97任你吞精| 日韩免费中文字幕视频| 国产蜜臀精品一区免费尤物| 啊啊啊草死我| 亚洲日本男人天堂网| 久久男人的天堂| 日韩人妻精品久久久久| v91av| 天天舔天天 | 国产精品无套内谢| 天天爱综合网| 婷婷伊人綜合中文字幕小说| 亚洲天堂2020| 精品久久99| 五月丁香黄色网| 动漫片子网站3黄| 国产操逼视频在线观看| 欧美久久人妻少妇一区二区| 精品v日韩欧美国产| 99热国产精品| 蜜乳av首页| 成人性交免费视屏| 亚洲AV免费在线观看| 91精品无码久久久久久久| 色盈盈影院| 日本日逼高清| 欧美激情黑人| 理论久久婷婷网 8| 在线岛| 超碰在线1234区| 久久9视频| 国产免费一区2区3区| 超碰97男人| 欧美强奸乱能| 另类欧美色| 亚洲人在线成线成人| 欧美Aⅴ| 欧美激情黑人| 麻豆天美国美国产| 岛国AB视频| 亚洲中文字幕熟女少妇一区二区| 99999精品成人| 亚洲成熟国产精品美女| 狠狠爱大香蕉| 男人天堂网手机版婷婷| 日本有码影片下载 | 久久超碰免费的| 国精精品无码一二三区水多多| 96国产精品| 亚洲天堂自拍| 亚洲综合在线视频| 免费自拍三级综合| 亚州性色| 天天综合站| 久热久一区二区三区| 亚洲二区精品在线观看| 一二三区操逼国产91| 亚洲欧美91√| 九九热超碰97亚洲最新香蕉 | 风间由美日韩欧美久久| 天天插夜夜爽| 中文字幕精品丝袜| 人妻少妇色综合| 色欲无码人妻日韩欧美精品| 久久伊人最新网址视频| 992大香蕉| 久久草视频污视频| 91网18| 精品 码产区一区二-1080P高清在线www-B029AV| 国产无码久久高清| 美女诱惑久久| 色吊丝 日日骚 清纯唯美| 久久久久久九九九| 久久精品日韩专区免费观看| 欧美久久婷婷| 国产91精品久久久久久久网曝门| 污啪啪啪视频| 五月天丁香网| 超碰九色| 日韩成人综合网| 国产精品久久久久久片| 91精品女厕偷拍视频| 男插女青青影院| 综合久久9| 久久久性爱| 亚洲精品 欧美97色色| 国产第二页| 另类av综合久久| 成人色女网| 宅男91视频在线播放| 天天爽爽爽爽| 无码91| 混色激情av| 激情第四色| h在线看免费版在线看| 91麻豆va国产精品| 午夜福利成人免费视频| 韩国一级做A片免费的| 午夜欧美女人操逼| 韩国三级理论在线| 性一交一乱一交A片久久四色| 天天精品| 99精品热| 啪啪91| 亚洲av热热色| 在线情色电影 91大 | 插入逼91| 久久久久久电影| 亚欧无码在线| 午夜色婷婷| 97色伦欧美| 中文字幕丝袜美腿| 97视频www| 久久禁| 青娱乐黄色录像| 色色九区| 久久免费99精品久久久久久| 99精品欧美一区二区三区桃色| 国产成年免费大片黄在线观看| 亚洲av无线观看| 熟女乱伦二区| 欧美少妇一区二区三区| 欧美色色人| 日日AAvv| 91视频伊人| 国产精品视频白浆免费| 91在线色综合| 欧美亚洲AN| 久久久九| 51国产午夜精品视频| 欧美人与性动交a美精品| 精品人人插人人操| 日本丝袜美腿人妻九九| 夜夜免费视频| 人妻三级在线中文字幕| 97精品熟女少妇一区| 99re在线观看| 超碰天天操| 欧美在线啊啊| 无色无码| 玖玖综合色| 97ai亚洲| 欧美日韩国产三级黄色| 一区二区激情国产熟女| 人妻超碰青青草98| 一级性爱视频免费观看| 免费观看啪视频| 成人精品一区二区三区| 国产农村妇女精品| 另类一区| 成人十八禁日韩欧美一二三| 综合97| 久久老子无码午夜伦不卡| 少妇一区二区三区在线观看| 大香蕉淫人| 夜夜影视四色| 熟女自慰久久久| 大香蕉综合网| a在线观看| 九一综合网| 日本国产亚洲一区在线观看| 天天干,夜夜爽| 精彩久久中文| 大香蕉www.超碰| 丁香五月天婷婷姐| 黄页av| 久久久夜夜嗨免费视频| 欧美日韩天堂| 一区二区三区黄色片a| 国产精品 午夜福利| 思思热影视| 黑丝日韩av丝袜av| 超碰人人操97碰| 国产老熟女| 操一操摸一摸| 国产精品天美传媒| 久久久四区| 久久综合婷婷| 超碰97国产欧美| 日本三级大片| 9Ⅰ超碰| 污啪啪啪视频| 亚洲日韩美女丝袜美腿人妻视频| 伊人激情| 99re在线| 九九九久千久久激情蜜桃在线看| 欧美色图亚洲激情| 香一区二区三区| 偷拍亚洲| 鸥美精品一区二区久久婷婷| 99re热有精品视频国产| 极品粉嫩少妇视频| 青椒国产97在线熟女| 女生自91网站| 麻花传媒免费网站在线观看| 欧美最大综合网| 亚洲av强奸乱伦| 99久在线精品99re8蜜桃| 五月天激情婷婷| 碰碰97| 欧美香蕉视xxx| 天天狠操| 国产精品电| 中文字幕在线高清男人的天堂| 校园春色AV天堂| 久久天天摸| 牛牛操视频逼| 我爱搞逼综合网| 久久曰曰| 久久精品熟女亚洲AV麻豆软件| 亚洲色欲一区二区三区| 免费无码国产精品v片在线观看| 91精品婷婷国产综合久久竹菊| 亚洲第一狼人丝袜美女另类 | 婷婷色导航| 好吊色综合| 岛国小电影| 日韩中文字幕人妻视频| 国产精品白丝AV| 天天添天天干电影| 激情网色| 97av在线观看| 色娱乐色呦呦夜夜夜夜av| 五月香婷婷| 久久草草亚洲蜜桃臀| 久久九操在线观看| 天天操女人| 插穴性爱视频在线观看| 欧美AB在线| 青青伊人久久| 日韩性色b| 欧美顶级黄色大片免费| 久久久久久久97| 嗯嗯啊啊日韩精品| 极品五月天噜噜| 国产女人操逼视频| 91操操操操| 中文字幕熟女人妻丝袜丝| 97综合在线观看| 熟女人妻一区二区三区| se吧提供国产乱老熟视频胖女人| 天天影视综合色| 97精品视频免费| 色婷婷视频| 国产区性爱在线视频秋霞豆| 摸奶性爱视频网站在线免费播放| julia国产在线| 狠狠图片青青草| 久久久久久久久久久六六| 日韩av在线免费网站| 人人妻碰人人免费| 夜夜精品视频| 欧美亚洲特P| 日韩中文9| 国产精品网站免费| 欧美色三级片91| 久久精品色欧美aⅴ一区二区| 影音先锋少妇| 中文字幕在线免费观看2| 午夜啊啊| 天天久久久久久| 热久久无毒不卡| 五月开心久久AV官网| 亚洲成人一二三区| 国产人妻精品一区二区三区秋霞| 中文字日本乱码| 久久9精品视频| 偷拍伦理视频| 小少妇| 中文字幕一区av| 色色色色电影网| 天天日B狠狠操| 欧美三四五区| 久久男人精品| 亚洲无吗在线视频| 九九无码视频| 激情文学 国产一二三aV| 精品999日本| 欧美综合网站999| 国产粉嫩蜜臀av一区二区三区 | 亚洲午夜福利视频| 国产精品女生av| 少妇熟女1区2区3区| 射久久| 国产性爱在线视频一区二区| 丝袜美腿av女优在线| 91激情综合| 人妻精品4K4K4K4K4| 国产午夜精品理论片a大结局| 亚洲自拍一区夜夜操| 欧美一区二区日韩传媒搭讪精品| 国产伦精品免编号公布| 激情小说五月天| 91Chinese在线| 在线观看日韩av不卡| 性爱乱伦网址| 巨爆乳肉感一区二区三区竹菊影视| 日韩在线观看中文字幕视频| 日本视频一区二区三区| 人人摸人人干人人拍97| 中文字幕性感少妇av| 激情综合五月婷婷| 日韩三四五区| 久久精品72| 欧美一区二区三区黄色影视| 亚洲玖玖爱| 中欧人妻丝袜中文字幕| 国产强奸乱伦xd| 久操精品网| 91亚洲精品青草| 久久日本熟妇熟色高清| 91亚洲狠狠色| 国产家庭乱伦表演| 免费中文在线| 久久亚洲不卡一区二区三区| 亚洲色天堂九9| 欧美巨大性舒爽顶到了| 日本精品不卡一二三区| 丁香久久| 99re6在线视频精品免费完整版安卓版| 密臀在线视频| 国产高清MV操逼视频| 91最新综合| 啊啊啊轻点在线观看| 蜜乳AV.COM| h在线看免费版在线看| 加勒比综合九九99视频在线播放| 国产久久天堂资源| 美国黄片aaa| 欧美国产日韩清纯唯美| 亚洲欧洲无码一区夜| 一个人免费视频观看在线WWW | 色妇综合网| av凤凰久久久| 无码人妻系列少妇| 天天艹天天日| 亚洲一区二区 麻豆传媒| 欧美日韩另类在线| 婷婷五月天补不补| 日韩少妇无码| 美女诱惑1区2区| 中文字幕天堂在线| 嗯嗯啊啊操死我| 韩国三级一线观看久| 丝袜内射| 欧美αv.com| 欧美精品三区| 成年女人18级毛片毛片免费观看| 夜夜春夜夜操| 欧美综合骚| 最新国内自拍av免费| 久久噜| 成人片在线播放| 中文字幕乱码在线| 美女高潮视频91| 黄色区免费观看中文字幕| 久久蜜桃一区二区| 激激五月| av日韩国产一区二区| 久久久久女教师免费一区 | 少妇丝袜在线观看AV| 国产精品自在线发布| 91成人无码| 成人A片男人的天堂| 国产AV超爽| 免费观看日本操逼视频| 亚拍在线| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 色狠狠一区二区三区香蕉| 丁香五月激情综合| 天天色天天干天天射| 亚州五月| 99精品久久久久久| 亚欧精品久久久久久久久久久| 人人摸.人人色| 亚洲色阁| 天天操天天舔| 精品国产久久乱码| SUV一区二区在线看| 首页亚洲国产高跟丝袜诱惑视频| 欧美亚洲色图另类国产| 日韩三级在线观看网站| 日本精品一级二级三级| 最新国内自拍av免费| 欧美玖玖爱免费玖玖| 亚洲欧洲色情高清| 精品四五区| 亚洲日韩一区电影| 天天插天天干| 国产11页| 日韩AV一区二区三区三州三州| 九九热免费视频| 天天色粽合合合合合合合| 日本潮催一卡操| 国产乱不卡| 熟女91网| 怡红院久久老司机| 欧美懂色综合网| 欧美激情高清性猛交| 新怡红院| 老熟乱一区二区三区四区| 啊啊在线| 97在线视频网站| 小电影欧美91| 91美女精品| 青青久久艹| 精品九九| 97色网| 久久社区一区二区三区| 免费一级精品啪啪视频| 亚洲欧洲日韩天堂av| yellow网站免费观看日韩高清无码| 国语国产操逼伊人AV网| 人人爱人人操人人性| 亚洲精品人妻吞精av | www.91视频网| 97超碰色| 综合色色婷婷| 日韩AV电影网站| 亚洲情色五月天 | 91成人社区| 亚洲色电影在线| 久操操AV电影| 久操视频资源站公开| 98色网| 97色欧洲| 国产精品第一区第一页| 欧美系列在线一区二区| 久久久亚洲精品电影免费看| 色九九九综合| 91性网| 精品国产人成在线| 老熟女区| 天堂亚洲精品| 日韩欧美午夜视频在线| 老师充足的奶水小说| 91色射| 99在线免费公开视频| 日本大片日本一区二区免费高清| 欧美视频第二页| 淫荡网址| 婷婷五月成人| 高颜值美女口爆高潮浪叫| JIZZJIZZ国产精品喷水| 亚洲自拍另类丝袜综合| 日韩有码 一区二区三区| 99日精品欧美国产| 另类专区加勒比| 国产精品一区午夜福利| 久久久精品国产亚洲伊人| 人妻天堂网| 欧美 日韩 国产传媒| www黄片免费看com| 九九九九精品视频| 伊人久久国产免费观看视频| 少妇啪啪自拍| 狠狠爱夜夜| 中日无幕一二三四区| 色就色综合| 久久久久久久久9| 亚洲18禁| 亚洲AV成人在线| A级片一区| 桑老女人九区| 久久精品一区二区三区不卡| 久久系列| 免费网站观看www在线观| 激情接吻视频久久久久久| 亚洲综合嫩| 欧美熟妇人体| 操高情无码| 精品人妻中文字幕高清| 日韩一级二级三级免费看完整版国语版 | 大香蕉99热| 亚洲最大成人a毛毛片| 羞答答AV中文字| 国产白嫩精品久久| 亚洲少妇综合在线播放| 欧美日韩色| 亚洲脚交| 欧美一二在线| 九九伊人网| 少妇滛荡视频| 久久中文字幕一区不卡| 超碰色综合| 亚洲**2021在线观看| 人妻熟女一区二区三区视频| 91久久18禁| 久久久久亚洲一区女同性恋中文字幕| 91精品国产麻豆国产自产在| 色色毛片| 国产成人自拍视频视频| 日韩三级伦理中文字幕| 亚洲男人天堂2017| 偷拍亚洲| 在线免费观看高清无码视频| 97中文字幕一区| 青草园大香蕉| 中文字幕艹艹| 少妇与黑人高潮在线| 亚洲精品成人| 97国产色综合| 亚洲国产精品久久久男人的天堂| 激情自拍 校园春色| 欧美在线色图| 激情四射五月天| 九九九午夜| 粉嫩av一区二区三区四季| 亚州九九九精品视频| 97网色| 日日干天天干夜夜爽| 日韩熟女无码| 99re国产中文字幕| 91五月天| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 日韩中文字幕在线视频观看| 日本精品高清一二区一本到| 狠狠狠狠狠| 亚洲黄日韩无码专区| 东北操逼| 伊人网免费视频| 国产日韩区| 久久黄黄| 色拍偷亚洲| 好爽视频在线观看视频| 最新日日夜夜天天干干| 自拍鲍鱼一区在线高清观看免费| 香蕉99秘 精品一区丁香| 青青草啪啪网| 99精品人妻| Blackedraw视频一区二区| 亚洲一区二区三区欧美日韩| 精品人妻一区二区三区-国产精品| juliaann精品熟女一区| 91精品人妻啪啪间| 第四色奇米影视777| 簧片免费看视频| 强奸熟女一区二区三区| 免费视频一二三区| 免费人成在线观看网站品爱网| 天天欧美欧美亚洲网| 亚州综合色图| 日韩综合色网| 蜜乳AV一区二区三区四| 欧美韩国你懂得在线 | 亚洲图片欧洲图片aⅴ| 欧美熟妇乱码在线一区| 国产蜜臀精品一区二区尤物| 日韩综合无码色欲vv| 美腿色图| 操熟女91| 欧美嫩性色| 麻豆成人AV| 丁香色五月 97干| 97中文热色| 五月天啪啪| 亚洲欧美自拍偷拍| 国产乱码久久| 欧美一区二区日韩三区| 青青三级视频| 超碰人人色| 亚洲日韩人妻中文字幕一区| 91最新综合| 国产激情视频一区区三区| 久久亚洲熟妇在线视频| 日本一区二区做爱的视频| 91人人| 物业黑人 AV一区| 翘臀vidoes| 人妻系列无码专区中文有码| 97久久综合网| 日本中文字幕一区| 爱爱动态试试看6 0秒| 日本性爱少妇| 精品人妻av在线播放| 伊人国产AV| 91超碰丝袜制服| 少妇同性| 91色鬼| 欧美日韩人人精品| 丁香五月婷婷五月| 日韩国产成人自拍视频| 黄色香蕉视频网站一区| 亚洲情欲| 久久少妇| 综合久久2017| 亚洲天堂久| 国产免费一区| A一级色女| 欧洲亚洲天堂精品| 伊人97超碰| 久久久艹艹艹| 色婷婷丁香五月| 91xingse| 亚欧精品久久久久久久久久久| 男人的天堂不卡一区二区 | 老师充足的奶水小说| 久久草在线综合视频| 激情五月天丁香社区| 少妇高潮对白在线观看| 日人妻视频91| 操逼逼无码| 91亚洲不卡一区| 夜夜狼人妻| 亚洲限制级| 国产AB视频| 亚洲视频精选| 国产400孕妇孕交群| 久久久久久人妻一区精品色欧美| 岛国1区2区3区在线观看| 综合在线导航一区| 婷婷色色网| 综合激情97| 蜜桃午夜视频一区二区 | 91丨九色丨大屁股| 精品 码产区一区二-1080P高清在线www-B029AV | 午夜天堂精品久久久久91| 精品白丝一区| 成年男人的天堂| 久操视频资源站公开| 啪啪啪综合网| 2020国产精品| 9久久美女首页| 加勒比av网| av在线观看不卡网站| 久久久精品成人国产| 色天使大香蕉| 一本一道久久综合久久| 亚洲天堂男人天堂网| 东北熟女91| 在线免费观看日韩一区| AV不卡在线| 亚洲综合888| 精人妻一区二区三区| 久久久96| 色成人Www精品永久观看| 天天操夜夜嗨| 精品久久視頻在线| 99精品网站| 97超碰香蕉| 国产福利精品最新在线| 男人天堂网手机版婷婷| 欧美aa一级片| 天天综合网合集91| 七月丁香婷婷| 91亚洲不卡一区| 亚洲日韩视频二区| 观看视频图片一区二区三区| 国产精品内射婷婷一级二| 一区二区偷拍拍视频| 免费AV中文网在线观看| 色一射色一射| 91精品女厕偷拍视频| 蜜桃狠狠色伊人亚洲综合| 中国亚洲呦女专区| 国产999精品久久久| 丝袜内射| 无码黑人精品一区二区三区三| 美女丝袜激情小说| 日韩黄色成人性爱| 亚洲激情片| 大乔未久88一区| 欧美精品日韩一区二区| 99色网| 97在线资源| 亚洲天天艹| 亚洲成人av电影在线| 蜜臀久久99精品久久久久久成人小说| 91校园春色长篇| 亚洲熟女性高潮久久久| 青女偷拍网| 97精品中文字幕| 久久一二三四不卡| 这里只有精品视频在线| 乱伦a片视频| 国产精品扒开腿做爽爽爽视频| 麻豆黄色五月天| 亚洲天堂五月天国产| 99少妇内射| 人妻天天爽| 婷婷五月天久久精品视频一区二区三区| 国产午夜无码片在线观看影视| 综合亚洲欧美| 超碰在线91| 啊a一区在线| 丰满人妻一区二区三区四| 大香蕉啪啪啪| 亚洲AV永久无码一区仙野| 久久青青草原免费视频| 啊啊啊在线观看| 女人与公拘交酡2020视频| 91熟女丨老女人| 国产精品人妻无码久久久互動交流|