亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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ú)法打開包括文件根本原因是 VC 對(duì) C99 標(biāo)準(zhǔn)支持不完整。這份修復(fù)包專門針對(duì)該報(bào)錯(cuò)整理面向使用 VS2008 或其他老版本 VC 進(jìn)行 C/C 項(xiàng)目開發(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)目排障尤其友好。通過該包不僅能獲得可直接復(fù)用的缺失頭文件還能了解舊版 Windows SDK/VC 在 C99 支持上的限制與補(bǔ)全思路對(duì)維護(hù)老項(xiàng)目或跨平臺(tái)代碼有實(shí)用參考價(jià)值。1. 從C1083報(bào)錯(cuò)說起這個(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壓根沒實(shí)現(xiàn)C99的stdint.h而代碼里到處是uint32_t、int64_t。后來從某嵌入式論壇看到msinttypes-r26這個(gè)補(bǔ)丁包解壓后把路徑一配置編譯直接通過。這份資源本質(zhì)上是一個(gè)頭文件包專門幫老編譯器補(bǔ)上標(biāo)準(zhǔn)整數(shù)類型頭文件解決的就是“C1083且錯(cuò)誤指向stdint.h”這類問題。適合所有在Windows上編譯開源代碼、做跨平臺(tái)移植、或者維護(hù)老舊C/C工程的開發(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之后部分變體仍然在“有”和“沒有”之間反復(fù)橫跳讓人頭疼。為什么老牌編譯器這么抗拒C99常見理由是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)”讓開發(fā)者自己去想辦法。msinttypes就是這個(gè)場(chǎng)景下的產(chǎn)物。它最初是某個(gè)開源愛好者為了解決自家嵌入式項(xiàng)目的編譯問題而寫的后來不斷修復(fù)邊界情況r26版本就是其中的一個(gè)穩(wěn)定提交。它不編譯、不鏈接就是兩個(gè)頭文件加幾個(gè)輔助文件把C99標(biāo)準(zhǔn)里定義的類型和宏原樣翻譯成老編譯器能識(shí)別的typedef和#define。用上之后源碼里就不用再到處寫“#ifdef WIN32 typedef ...”這種丑陋的兼容層了。實(shí)際使用中你會(huì)發(fā)現(xiàn)很多開源項(xiàng)目在Windows上編譯失敗很大比例都是栽在stdint.h上。比如某個(gè)用C語(yǔ)言寫的物聯(lián)網(wǎng)協(xié)議棧內(nèi)部大量使用了uint16_t來解析報(bào)文在Linux上編譯順暢一拿到Windows上就報(bào)C1083新手往往會(huì)誤判成“SDK沒裝好”反復(fù)重裝環(huán)境最后發(fā)現(xiàn)只是缺一個(gè)頭文件。這種血淚經(jīng)驗(yàn)經(jīng)歷過一次就能記住。2.2 stdint.h在跨平臺(tái)代碼里的實(shí)際價(jià)值先來看為什么跨平臺(tái)代碼離不開stdint.h。C標(biāo)準(zhǔn)只保證了char、int、long這些基礎(chǔ)類型的最小范圍并沒有承諾它們?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é)問題。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是用來保存指針值的整數(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)景自己寫一個(gè)自定義stdint.h完全可控?zé)o外部依賴容易寫錯(cuò)類型寬度需要維護(hù)只有一個(gè)臨時(shí)工程代碼量極小用msinttypes補(bǔ)齊標(biāo)準(zhǔn)實(shí)現(xiàn)直接可用社區(qū)驗(yàn)證過需要額外引入文件不能自動(dòng)更新絕大多數(shù)跨平臺(tái)移植和開源代碼編譯升級(jí)編譯器或換用其他工具鏈治本后續(xù)無(wú)需擔(dān)心C99特性可能牽動(dòng)老項(xiàng)目ABI成本高新項(xiàng)目或允許改動(dòng)編譯環(huán)境的場(chǎng)景我一般會(huì)推薦第二種。原因很簡(jiǎn)單自己寫stdint.h你得考慮32位/64位、要不要兼容無(wú)符號(hào)、還要定義各種宏細(xì)節(jié)多到容易翻車。而且一旦有多個(gè)源碼目錄每個(gè)工程都塞一份自定義頭文件維護(hù)起來就是噩夢(mèng)。msinttypes經(jīng)過多年修補(bǔ)對(duì)老編譯器的兼容性做得比較完善r26這個(gè)版本我用了幾年沒出過岔子。選擇它還有一個(gè)隱性好處源碼不用再寫一堆“#ifdef _MSC_VER”繞道代碼了。整個(gè)工程在一個(gè)統(tǒng)一的頭文件視角下編譯后續(xù)如果想切換到新編譯器直接把msinttypes從包含路徑里移除就行代碼不需要?jiǎng)?。這種“后悔藥”的效果經(jīng)歷過老工程現(xiàn)代化改造的人都懂。再說說和標(biāo)準(zhǔn)C語(yǔ)言的對(duì)應(yīng)關(guān)系。stdint.h還定義了一組寬度宏比如INT8_C、INT16_MAX這些在初始化常量時(shí)非常有用。例如你想定義一個(gè)恰好等于INT32_MAX的宏常量直接寫#define LIMIT INT32_C(2147483647)比起手動(dòng)算0x7FFFFFFF更清晰。msinttypes里也完整實(shí)現(xiàn)了這些宏而且針對(duì)老編譯器可能不支持的部分做了變通。如果你之前只關(guān)注了類型定義忽略了這些宏那在寫可移植代碼時(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就可以寫PRId64代碼在Linux和Windows上都能編譯不用再為格式化字符串傷腦筋。這個(gè)細(xì)節(jié)在移植串口調(diào)試代碼時(shí)尤其常見。3. msinttypes-r26上手三步配好編譯器包含路徑3.1 解壓看結(jié)構(gòu)里面到底有什么下載下來的壓縮包體積很小解壓后一多半是說明文檔和測(cè)試代碼真正核心的文件只有兩個(gè)stdint.h和inttypes.h。我以r26版本為例列出常用的文件清單文件作用stdint.h定義全部整數(shù)類型和大小限制宏inttypes.h定義格式化宏和轉(zhuǎn)換函數(shù)聲明LICENSEBSD風(fēng)格的開源許可README使用說明和版本歷史這里的文件結(jié)構(gòu)很干凈不需要額外安裝腳本。你需要做的就是把整個(gè)解壓目錄加入編譯器的頭文件搜索路徑。一個(gè)常見的做法是把該目錄復(fù)制到工程目錄下的third_party/msinttypes或者放到一個(gè)公共的依賴庫(kù)目錄里比如D:\dev\include。復(fù)制好之后建議用文本編輯器打開stdint.h確認(rèn)文件開頭包含“#ifdef _MSC_VER”之類的條件編譯代碼。msinttypes在內(nèi)部會(huì)根據(jù)_MSC_VER宏判斷編譯器版本再?zèng)Q定是否啟用typedef。比如在VC6這樣的老古董上它走一套完全不同的定義。如果你用較新的編譯器它也會(huì)自覺避免和系統(tǒng)自帶的stdint.h沖突。3.2 通過IDE屬性頁(yè)配置包含路徑最常見的使用方式是在Windows IDE里打開項(xiàng)目屬性進(jìn)行配置。操作路徑是項(xiàng)目右鍵-屬性-C/C-常規(guī)-附加包含目錄。點(diǎn)開編輯框手動(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è)配置并且都在用老編譯器兩邊都得添加一次。我見過有同事只改了DebugRelease還在報(bào)C1083糾結(jié)了半天最后發(fā)現(xiàn)是這條路沒走全。建議在屬性頁(yè)頂部的“配置”下拉框選擇“所有配置”一勞永逸。配置完成后清理并重新編譯整個(gè)工程。如果原來的報(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 通過命令行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)包起來。/Tc 表示把后續(xù)文件當(dāng)作C語(yǔ)言源碼編譯如果想編譯C代碼改成 /Tp 或直接給.cpp擴(kuò)展名。執(zhí)行后如果沒報(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里寫路徑時(shí)要注意反斜杠和引號(hào)的轉(zhuǎn)義習(xí)慣nmake對(duì)這些相對(duì)寬松但遇到空格時(shí)一定要引號(hào)閉合。如果你是在PowerShell或CMD里臨時(shí)測(cè)試不想加進(jìn)工程配置也可以直接用環(huán)境變量INCLUDE來臨時(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í)名稱一致。如果你的構(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)開啟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開關(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生效從編譯通過到類型寬度一致4.1 一個(gè)專門驗(yàn)證固定寬度類型的示例代碼配置完成后直接拿一個(gè)大項(xiàng)目編譯風(fēng)險(xiǎn)太大我習(xí)慣先寫一個(gè)最小的驗(yàn)證文件專門檢驗(yàn)頭文件有沒有生效、類型寬度是否符合預(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注意第三行如果編譯出來的程序是32位的intptr_t就是4字節(jié)如果是64位會(huì)是8字節(jié)。這行輸出能幫你確認(rèn)編譯目標(biāo)環(huán)境。格式化宏P(guān)RId32在Windows的老編譯器上會(huì)展開成“d”PRIx64會(huì)展開成“I64x”這兩個(gè)宏正是inttypes.h里的關(guān)鍵內(nèi)容。4.2 通過編譯日志確認(rèn)頭文件實(shí)際路徑有時(shí)候編譯通過了但心里還是不踏實(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)輸出重定向到文本文件。打開preprocessed.txt搜索“stdint.h”就會(huì)看到完整的頭文件路徑。例如#line 1 D:\\dev\\include\\msinttypes\\stdint.h這一行說明編譯器確實(shí)使用了你指定的msinttypes版頭文件。如果你看到路徑是某個(gè)Windows SDK目錄或者項(xiàng)目目錄下的其他頭文件那就說明搜索順序有問題需要回到第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í)慣是寫一個(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”字符串找到了就返回成功否則輸出失敗并退出。批處理通過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沒有被定義時(shí)編譯直接終止并顯示錯(cuò)誤信息。這種編譯期驗(yàn)證方式比人工看日志更快適合自動(dòng)化集成。注意這里的宏定義名必須和實(shí)際頭文件一致msinttypes里確實(shí)定義了這些宏。5. 避坑指南C1083之外的五種常見翻車現(xiàn)場(chǎng)這一章是重頭戲我根據(jù)自己踩過的坑和幫同事排查的經(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)整順序或者通過在C/C命令行中加入?yún)?shù)指定強(qiáng)制使用msinttypes的路徑。如果第三方庫(kù)的頭文件必須優(yōu)先那就只能手動(dòng)把庫(kù)自帶的stdint.h改名并把庫(kù)源碼里對(duì)應(yīng)的#include聲明一并修改。更穩(wěn)妥的辦法是用編譯開關(guān)查看預(yù)處理搜索路徑先確認(rèn)到底誰(shuí)被優(yōu)先找到了。5.2 坑2類型寬度和預(yù)期不一致現(xiàn)象代碼編譯通過但運(yùn)行時(shí)的結(jié)構(gòu)體大小、序列化字節(jié)數(shù)和Linux同事不一樣調(diào)試半天發(fā)現(xiàn)uint32_t變成了8字節(jié)。原因某些老的msinttypes版本在特定編譯器上沒有正確區(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í)是頭文件定義問題檢查是否使用了正確版本r26對(duì)64位和32位分別做了分支處理。再檢查編譯選項(xiàng)里是否定義了_WIN32或_WIN64宏msinttypes內(nèi)部依賴這些宏做位寬分支。在編譯命令行中手動(dòng)添加/D_WIN64可以強(qiáng)制走64位路徑。我遇到過最詭異的一次是工程屬性里的“平臺(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)里用來把C99的宏暴露給C的開關(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)試信息”而不是“包含路徑”二是配置的路徑下沒有對(duì)應(yīng)的文件比如解壓后把文件夾嵌套了一層三是IDE緩存問題清理不徹底。解決先用系統(tǒng)文件搜索確認(rèn)完整路徑比如D:\dev\include\msinttypes\stdint.h確實(shí)存在。然后檢查屬性頁(yè)的“附加包含目錄”填寫是否就是該目錄不要把“include\msinttypes”多寫或少寫。還要關(guān)注配置類型如果是同一個(gè)工程包含靜態(tài)庫(kù)和DLL項(xiàng)目每個(gè)子項(xiàng)目都要各自配置。最后嘗試關(guān)閉IDE重開或者清理中間文件。我甚至見過有人把路徑寫成了“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í)別開得越高報(bào)得越多甚至直接導(dǎo)致編譯失敗。原因老編譯器對(duì)printf系列的格式化檢查識(shí)別不了自定義宏或者宏展開后是“I64d”這種非標(biāo)準(zhǔn)格式編譯器的警告級(jí)別過高時(shí)會(huì)產(chǎn)生警告。這個(gè)警告不影響生成但會(huì)讓追求0警告的工程無(wú)法通過。解決把警告級(jí)別從/Wall降到/W3或者在包含inttypes.h之前定義__STDC_FORMAT_MACROS宏。在老編譯器上也可以直接使用系統(tǒng)擴(kuò)展格式符號(hào)比如printf(value%I64d\n, (long long)value);不過這樣就犧牲了可移植性。我的做法是在工程級(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之后編譯通過只是第一步我更建議在代碼里加上編譯期靜態(tài)斷言把類型寬度徹底鎖死。C語(yǔ)言中沒有標(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)歷過因?yàn)橐粋€(gè)類型寬度不一致導(dǎo)致整個(gè)協(xié)議棧解析錯(cuò)亂的事故就再也不想省這一步了。希望這些細(xì)節(jié)能幫到你讓你在Windows上遇到stdint.h問題時(shí)少走我當(dāng)初的彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
操逼内射干逼白丝91| 偷拍综合亚洲| 欧美色另类| 狠狠操夜夜| 中文字幕一区二区三区蜜臀| 免费视频观看60秒| 夜嗨影院| 欧美在线色| 97免费视频在线观看| 成人八戒网站| av72网| 无码人妻1727| www.97在线| 国产精品在线免费| a网站免费观看| 香港日本韩国人妇99www.wccm20| 国产JDAV无码视频在线观看| 电影69乱码96| 亚洲成成熟女人综合一区二区| 国产伦精品| 免费啪啪啪网站18岁| 色阁阁AV综合网| 欧美日韩精品一区二区三区高清| 亚洲第一色页夜| 日韩精品字幕| 宅男午夜在线视频| 在线a亚洲视频播放在线| 国产99 中文字幕日韩小视频| 亚洲性少妇| 国产传媒午夜理伦精品| 亚洲鸥美色图| 日韩精品免费高清视频在线| 欲色影视综合吧| 日本操逼视频在线| 夜夜狼人妻| 国产兽交视频在线播放| 日韩综合色网| 色噜噜综合在线| 青娱乐91| 五十路熟女工口 | 亚洲欧美校园另类春色| 久久久久久性爱免费视频| 99国内精品| 欧美日韩国产精品久久色婷婷| 人妻 中文 日韩| 九九九九免费高| 八戒午夜福利理论片| 亚州综合色图| 一个国产在线综合网站| 青青久久久| 日韩性爱播放| 老熟女91| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 欧美日韩国产人人| 亚洲色诱惑| 97在线免费看视频| 影音先锋一区二区在线资源| 色婷婷视频| 欧美精品不卡一二三四在线91| 国产精品一区二区黄片| 青青免费在线视频一区| 亚洲一二三四区在线免费看视频| 丁香五月天婷婷姐| 澳门特级毛片免费观看| 玖玖爱影院| 欧美在线55555| 69精品人人人人| 国语av狠狠色丁香婷婷综合激情| 亚洲 欧美 综合 91| 99这里有精品| 国产综合网站在线播放| 亚洲精品久久久久毛片A片拉屎 | 欧美日韩人妻少妇 一区二区三区| 久久久夜夜嗨免费视频| 日本精品一级二级三级| 人人性爱视频免费| 久久久青青草| 熟妇一区,二区,三区。| 97精品一二区| 人妻中文在线| 亚洲国产一区二区入口| 中文字幕制服诱惑| 91高清欧美| 欧美久久草熟女| 92人人操人人| 丝袜剧情| 三级日韩一区二区三区| 熟女精品日韩一区二区三区 | 51一区二区三区| 女人喷水视频在线观看| 中文字幕av亚洲精品| 深夜视频| 久久久国产av美女私房| 无码久久亚洲高清,| 草草影院最新网址| 青草av在线| 久久久久久大| 亚洲视频中文一区| 美女大乳久久久久久久女人18| 超碰97色色| 亚洲激情在线| 日日夜夜天天| 综合激情五月天| 日本丝袜人妻内射| 麻豆综合一区av| 国产99999| 国产精品另类| 尤物视频视频官网| 热99re69精品8在线播放| 中文欧丝袜诱惑| 欧美老妇综合网| 日韩无码嘿咻黑热久| 久久久久9| 欧洲熟妇xxXx欧美老妇裸体| 久热这里| 国产在线不卡导航| 久久熟女人| 亚洲色图大香| 少妇免费视频| 精品网站9999| 国产精品久久久视频| 久久久蜜桃一区二区三区| 9+1视频网址| 欧美亚洲色图另类国产| 欧美精品一区二区少妇免费A片| 久热这里只有精品9| 亚洲图片欧美另类综合免费视频大大香| 开心五月婷婷| 色爽爽文学| AV天堂丝袜| 99热这里只有精| 久久久久国产亚洲一区欧美色图日韩| 香一区二区三区| 亚洲色图91欧美日韩| 亚洲日本成人动漫| 香港成人一级视频在线青青草| 97视频观看| 国产白领连续中出在线观看| 亚洲三级网址久久最新| 亚洲综合情色| 神马久久久久久久久| 歐美性天天| 色综合99999| 德国一二三不卡| 成人热久久精品| av麻豆啪啪| 久久精品男人的天堂| 超碰色美女| 久久狠狠色噜噜狠狠狠狠97| 日本韩国国产精品一区| 国产精品婬乱一级毛片彝族| 99久re热视频精品98| 操逼逼福利视频| 日韩乱伦AⅤ| 免费观看性欧美一级| 人妻干天天| 岛国激情视频软件| 婷婷色网| 国产精品天干天干综合网麻豆| 亚洲情色在线| AV久日| 97K超碰在线| 影音先锋每日最新资源在线观看 | 97色网| 噜噜吧,噜噜色,噜噜| 久久一本大香蕉 | a一区二区三区乱码在线| 天堂九九九九九九九九九| 日韩美女操b| 色拍偷亚洲| 色阁阁AV综合网| 3PAV乱伦视频| 欧美日韩在线视频网站| 99久久精品国产高潮| www.国产高潮精品| 精品久久久久,69国产成人精| 亚州乱码中文字幕综合久久久| 中文字幕av丝袜| 秋霞Av理论一级在线| 强奸乱伦大香蕉网| 草b在线 | 日本岛国黄色网址| 啊啊啊慢点| 国产农村妇女精品| A V少妇特黄三级| 国产精品午夜成人福利| 天天做天天爱| 日韩成人网址| 美女十八禁| 婷婷在线视频在线观看| 超碰公开久久网| 老熟妇一区二区三区| 特污精品女优骚货黄色视频在线免费观看| 人妻少妇久久中文字幕一区二区 麻豆| 日韩人妻一区二区| 欧美毛片在线网| 男插女青青影院| 人人操人人肉久久精品| 国产视频不卡在线观看| 久久久99999久网站| 一区二区高清视频| 欧美有码亚洲中文字幕一区二区三区四区| 抽插亚洲无码| 香蕉久久国产AV一区二区| 久久久国产精品亚洲精品| 97天天综合| 大香蕉九九| 蜜臀久久99'精品久久久| 性色av大全| 中文字幕乱碼在线| 亚洲欧洲综合成人av一区| 高清不卡国产| 激情黄色片在线观看| 无码免费一区二区三区啪啪| 最新av中文字幕高清| 香蕉一区二区三区在线视频| 精品人妻美妇91job| 亚洲综合情色| 妺妺跟我一起洗澡没忍住| AV色五月天| 黄片无码在线制服| 97 国产精品| 国产乱伦一二三区| 免费精品无码一级毛片牛牛影视| 插老姨肥穴| 欧美在线永久天堂| 美女91av| 日本99久久| 国色综合天| 另类图片五月| 无码人妻一区二区三区色欲aⅴ| 亚熟在线| 日本韩欧美在线播放a| 热久久无毒不卡| 人妻-91porn| 欧色网址| 97精品视频免费| 欧美综合娱乐久久| 丝袜视频网国产90| 青青草九九九九九| 婷婷午夜成人色中色| 91日日夜夜| 色爱综合网| 中文字幕日韩电影人妻| 粉嫩久久久极品| 欧美性爱五月天| 国产精品第一页国产大屁股视频免费区| 五月色网| 国产日韩欧美操逼视频| 日少妇视频| AV高清一区| 九九久久一区二区伦理| 99re视频在线播放青草| 91老司机在线视频免费观看| 老司机射| 女人与公拘交酡2020视频| 亚洲日韩熟女人妻高清在线| av中文在线| 日本爽爽爽爽爽爽免费视频| 欧美激情高清性猛交| 91精品综合久久久久久五月丁香| w w w.久久精品| 宗合情欲网| 殴美大黄片| 999久久久免费精品国产牛牛| 使劲用力艹少妇视频一区二区| 五月天伊人| 精品久久久久久无码| 色欧美在线| 91亚洲欧美色图| 久久激情视频| 国产伦乱91| 翔田千里无码一区| 99re在线| 又黄又硬又粗又长国产视频| 啊啊啊啊啊啊啊在线| 啊啊啊com| 性做久久久久久久| 在线无码视频| 国产捆绑一区| 97国产精品一区| 亚洲九九爱| 18精品一区| 无码少妇精品一区二区60岁老人| 91深夜夜| 亚洲āv网址在线观看| 99re视频在线播放青草| 中文久久96| 天天综和| 中国黑人三级片网站上区| 日本色婷婷| 99久久精品国产高潮| 国产精品福利视频播放| 看日韩黄片| 啊v在线观看视频| 人妻夜爽夜夜爽| 欲色啪| 欧美国产一区二区三区麻豆传媒| 青青草精品| 91N欧美| 乱伦av.com| 少妇人妻好深太紧了vr91| 91大神精品长腿在线观看网站| 青青草中文字幕| 久久9精品| 啊啊啊啊好疼| 精品日日人妻| 色图综合| 97视频免费在线观看| 久久久夜夜夜| 午夜视频黄| 亚洲中文字幕熟女| 天天综合91| 日本精品一区二区三区四区的功能| 欧美综合亚洲| 久久久久国色αv免费观看| 色狠狠一区二区三区香蕉| 国产人人干| 91在线国产后入风骚翘臀美女素人| 91色堂| 中文字幕在线第二页| 亚洲精品人伦一区二区| 欧美综合综合| 男人天堂2017| 色就色综合| 免费一级特黄特色大片在线观看看| 伊人一区二区在线播放| www.av在线视频| 999亚洲国产视频| 盗摄女人妻在线| 操逼网免费无码视频| 国内毛片无码一级毛片| 久久一区,青青青青草视频在线播放| 亚州操操穴网| 国产乱码久久久久久| 欧美桃色网| 热热色91| 欧美国产欧美在线观看| 99久re热视频精品98| www.狠狠干.coom | 色呦呦、国产精品| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 五月天伊人| 亚洲中文字幕网| 亚洲一区二区精品福利| 午夜福利久久久噜久噜久久综合 | 久久婷婷精品| 国产欧美日韩臀| 夜夜嗨老熟女AV一区二区三区| 亚91网| 高清有码一区二区| 女人被添高潮免费视频| 嗯嗯啊啊用力视频免费| 欧美图片校园春色| 国产人妖视频一区在线观看| 花野真衣| 夜夜春夜夜操| 亚洲91在线播放影院| 亚洲日本韩国在线| 国产成人精品午夜福利| 欧美综合91| 丁香六月激情| 精品国产自在在线99| 青青草久久在线| 欧美综合另类| 一区二区三区精品久久| 亚洲人妻av| 麻豆一区二区三区精品| 青青青青青手机视频| 在线αⅴ| 色婷婷丁香| 一二三四日本视频高清| 国产精品熟妇一区二区三| 日本高清一本二本免费不卡| 亚洲欧洲中文日韩女优乱码| 国产高清成人传媒影视| 天天日天天屌天天操| 欧美一二三| 日韩不卡av一二三| 色哟哟精品1精品2| 国产三区免费在线观看| 亚洲美女30b| 超碰97护士| 人妻熟女av国产网站| 日本东京热大香蕉a片| 午夜爽爽爽| 国产粉嫩出水在线播放| 亚州综合图片| 欧美性爱日韩性爱| 青青草手机在线免费观看| 91黑人狂躁丰满熟妇| 岛国成人av在线播放网址| 欧美999999| 伊人操你| 九九热在线精品视频| 91视频精品| 综合网,亚洲,欧美| 男人天堂网站| 国产天天骚| 国产精品久久久| 婷婷五月天激情小说| 色香网| 中文字幕成人理论在线| 国产自产22区| 操逼逼福利视频| 91激情综合| 综合免费无码中文| 青青草中出视频| 婷婷AV一区二区三区| 美女网站黄页| 国产AV久久久蜜爱影集| 久久 亚洲 日韩 人妻| 99亚洲国产精品色一区二区三区| 国产传媒一区日韩| 欧美日韩国产黄色片| 亚洲日韩久久精品一区| 熟女人妇一区二区三区| 久久9精品| 六月丁丁香| 大色综合| 久久久18禁| 手机在线中文字幕国产 | 欧洲天天在线| 色就色综合| 搡老女人老91妇女熟女| 亚洲人妻av| 亚洲欧美首页| 亚洲精品国产AV天美传媒| 小说区 图片区色 综合区| 超碰在线974| 日韩精品一区二区日韩| 91精品国产91熟女| 99re在线观看| 日本一级性爱| 日本一级真人黄色性爱视频| 欧美青青视频| 草草影院在线视频| 中文字幕一区二区三区高清| 亚洲在线观看| 视频在线观看一二三区| 久久精品国产亚洲AV无码做| 综合网亚洲在线| 久久久久久大| 色爱三区| 国产美女口爆吞精视频| 人人妻天天做天天爽| 丁香激情网| 乱操乱伦AV| 欧洲色综合| 欧美熟妇人体| 亚洲暴力强奸AV| 9精品久久久久| 97人人爱人人做人人乐| 中亚精品极乱| 大香蕉久| 99久久精品无码一区二区毛片免费| 日本天天干天天日一区| 第四色色综合91| 综合欧美日本三级| 国产一级内射无挡观看| 97久久久久| 淫乱图区| 麻豆天美制片厂网站视频| 日韩不卡毛片Av免费高清| 91视频综合网| 大香蕉2017| 一区二区蜜臀| 麻豆2区1区天美| 抽插无码高清一区| 在线观看岛国有码| 天天谢天天干| 国产午夜精品理论片一二三区区| 91国产伊人大香蕉| 国产福利夜| 国产一级αv免费看片| 国内精品久久人妻性色av| 欧美色交| 91亚洲黄色网| 99日视频在线免费| 26uuu性| 蜜桃久久综合视频| 乱伦系列一区二区| 粉嫩AV一区夜夜嗨| 99视频内射三四| 老司机香蕉久久久久| 欧美色综合网| 国产精品第一区第一页| 亚洲色图殴美色图激情乱伦| 亚洲无限观看| 日本久久精品| 超碰97色| 久久99亚洲精品久久99果| 精品国产乱码久久久久久网站入口| 夜夜嗨免费视频| 九九九九欧美| 青操影院| 国模91| 日本熟妇精品九九| 欧洲自拍色图gif在线| 超碰1024久久| 999熟女精品| 99999这里都精品| 男人的天堂无码| 久久久久久久9最新免费视频观看| 欧美在线中M| 欧美日韩人妻婷婷一区| 国产精品粉嫩福利在线| 激情情色五月天| 久久三区四区| 精品天堂| 精品无码一区二区三区色欲| 欧美精品一区二区少妇免费A片| 91成人高清在线观看| 亚洲自拍天堂| 人人干人人操人人..com| 国产 日韩 另类 视频一区爱| 性爱乱伦一区| 五月婷婷色| 天美麻豆精品视频99| 91丝袜美腿网站| 日日夜夜天天| 91啪啪| 2018色综合天天操| 亚洲欧美激情另类色图| 男人的天堂2018.| 日韩三级在线观看mp4| 欧美 亚洲 另类 综合| 超碰午夜| 久久高潮妇女视频| 99久久久久| 国产亚洲一黄| 国产成自自拍在线观看| 欧美丝袜美女电影一二三四区| 欧美,日韩,中文,另类| 中文字幕乱亚洲美女精品一区| 97欧美视频| 亚洲啪AⅤ永久无码| 超碰人人超在线观看| 亚洲色鬼| 欧美青青视频| 欧洲精品二区| 无码丰满熟妇一区二区浪潮AV| 久久久久久久久成人av解说| 欧洲天天在线| 熟女露脸激情自拍视频| 欧美色就是色| 交换娇妻呻吟声不停中文字幕| 乱伦3P视频| 爱射综合| 精品少妇人妻一区二区三区| 久久久性| 欧美久久伊人| 欧美中字二区| 91天天综合网| 国产精品久久久久久久久AV大片 | av日韩国产一区二区| 色色五月婷婷| 91色色综合| 欧美懂色综合网| 久久伊人亚洲AV无码网站| 婷婷在线视频| 亚洲国产青青| 偷拍偷窥与盗摄视频专区| 99热只有这里有精品| 黑人中出21连凳花野真衣| 日韩天天综合| 韩国一级AAA| 美女尤物福利视频| 久久久久国色αv免费观看| 尤物黄色在线观看网站| 亚洲有薄码区日本系列中文字幕| 成人精品水蜜桃久久久久久久| 亚洲一区二区三区在线激情| 欧洲熟妇xxXx欧美老妇裸体| 综合久久99亚洲人妻中文在线| 美女黄网| 人妻激情偷乱视频一区二区三区 | 激情接吻视频久久久久久| 欧美性暴力猛交XXXX | 蜜桃中文字日产乱幕4区| 精品一区二区2| 亚洲 日韩 丝袜 熟女 变态| 亚洲 欧美 小说| 一起草三级AV电影在线观看 | 欧美成人一级麻豆| 大稥蕉免费视频这里只有精品| 久久99干一本高清| 成人网站 免费观看| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久黄黄黄| 国产一级黄色片在线观看| 久久久久78| 国产一级高跟丝袜| 色婷婷婷五月天激情四射| 淫荡网址| 97超碰美国| 天天综合-91入口| 婷婷五月天成人| 久久久久国色αv免费观看| 五月天色色网站| 快播久久人人aV| 五月丁香啪啪网| 操久久久久| 秋霞蝌科网日本一区| 中文字幕乱碼在线| 欧美爆乳精品一区二区| 国产熟女少妇一区| 性猛交| 久久免费中文字幕在线观看| 激情婷婷综合久久| 欧美老妇女内射网址| 91在线超高颜值国产| 亚洲色资源| 亚洲精品影视老司机| 国产亚洲色停停久久99精品91| 国产超碰国产97| 在线午夜成人无码视频| 久久国99999| 久久亚洲AV无码专区国产精品| 狠狠爱夜夜干| 99免费在线视频| 亚洲国产成人精品女人久久久| 色穴精品| 日韩熟女乱伦中出| 久久99干一本高清| 欧美色棕合| 国产精品白丝在线播放| 久久少妇人妻| 日韩精品国产精品五码一区二区| 91福利网在线观看| 91骚妇| 国产精品女生av| 亚洲自拍青操视频| 天美精品av| 亚洲欧美日韩二区视频| 91无码人妻精品一区二区三区蜜桃| 日日狠狠久久偷偷色综合免费| 女性喷水高潮在线观看| 狠狠爱夜夜干| 91精品国产综合久久久蜜臀| 能在线播放的国产三级| 亚洲黄色电影| 国产偷仑| 九九热免费视频| 亚洲精品白浆高清久久久久久| 五毛骚逼极品美女怕怕| 神马久久久久眼| 乱伦1色页| 久久久蜜桃臀无码视频| 亚洲男人的天堂网| 久久国产精品,久久国产| 国产乱码精品一区二区三区四川| 免费精品国偷自产在线在线| 蜜臀99久久精品| 国产精品网站免费| 五月婷婷激情网| wwwxxx日本爽| 激情婷婷综合久久| 插插综合网天天影视网| 亚熟hd视频在线| 97超碰69| 综合久久婷婷| 日韩欧美午夜视频在线| 人人模人人看| 欧美97色| 极品出轨视频网站| 久草精品一区| 91中文精品日韩欧美在线| 五月丁香综合| 97人人模人人爽人人| 中文字幕三四区| 999久久芭蕾| 金典av| 久久天天躁日日躁狠狠躁| 婷婷色在线| 国产精品久久伊人| 欧美日韩国产高清在线一二三区| 国产精品久久久久久久无码AV| 乱人乱色一区二区三区免费| 人妻天天爽夜夜爽2| 欧美视频第二页| 在线啊啊啊啊| 男人下部插入女人下部 | 国产97视频| 亚春色色| 性高潮久久久| 亚洲第二页| 蜜臀一二三区| 亚洲清纯唯美| 艳尻美人妻| 草b在线| 美腿色图| 丰满欧美少妇| 免费视频a级毛片免费视频| 天天操天天舔| 91精品大奶人妻| 大香蕉av在线| 99欧美| renqi久久久久久久久久久久| 依人大香蕉| 亚洲综合激情五月久久| 婷婷五月综合在线| 色五月亚洲| 亚洲日韩一区电影| 嗯嗯啊啊视频在线看 | 伊人网综合在线视频| 8x福利精品第一福利视频导航| 国产一区二区在线播放量| 久久免费99精品久久久久久| 久久久久久一日韩字幕无码| 密乳无码| 免费啪啪啪网站18岁| 久热婷婷| 超91综合网| 久久色一区| 美日韩在线不卡人妻| a片亚洲一本通视频| 热热色国产一二区AV| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 欧美精品成人一区二区在线观看| 欧美v日韩v亚洲v最新在线| 国产婷婷综合在线观看| 一个国产在线综合网站| 91精品无码人妻系列| 婷婷久久五月| 射丝袜高跟鞋99| 天美传媒AV国产在线| 涩综合导航| 国产精品点击进入在线影院高清 | 亚洲图片欧美制度| 97久久超碰国产网站| 狠狠干2020| 骚女天天综合网| 波多野结衣AV无码一区| 欧美人妻一区| 久久麻豆一区二区| 日韩少妇无吗| 国色综合天| 999精品国产高清一区二区| 网页导航五月天免费一二三区| 五月综合久久| 日韩精品电影| 国产女人视频三四五区| 韩国黄片aaaa| 午夜男人一级A片7777| 蜜桃中文字日产乱幕4区| 青青草久久在线| 欧美超碰97| 日韩免费av片高清无码| 美国aaaaa一级黄片| 青青操青娱乐| 色综合1991| 亚洲中字幕日本一区二区三区| 精久久久| 插入逼91| 99亚洲天堂| 亚洲男人天堂2016| 97天天操| 国产一区二区三区导航| 天天爽夜夜欢视| 久久久999国产精品| 日韩免费簧片| 超碰79人人乐| 精品免费成人久久| 亚洲成aⅴ人片不卡无码| 久久毛卡| 欧美制服另类丝袜| 免费成人在线熟妇网| 97爱| www超碰| 色爽——AV| 性色av大全| 国精品一区二区三| 丰满人妻一区二区三区| 麻豆国产96在线| 一本大道综合伊人精品热热| 97干在线| 日韩精品99999| 日本不卡中文| 久久久无码av精| 欧美久久婷婷| 久久国产在线一区二区| 天美传媒国产原创中文字幕亚洲欧美另类| 欧美国产一区二区三区麻豆传媒| 超碰在线成人电影| 国产CHASE男男GAYGA 毛多色婷婷| 美國A片| 日韩色欲久久一二三四区| 99re9| 五月天啪啪| 亚洲激情深爱文学小说网站| 日韩性爱毛片操骚逼| 日韩伦理视频| 精品欧美不卡在线播放| 乱人伦 国语对白:视频直接看| 丰满少妇精品一区二区| 无码国产精品久久久久| 欧美在线l亚洲| 俄罗斯一区二区视频在线观看| 亚洲伊人久久精品狠狠在线| 韩国三级色呦呦| 920日本午夜免费| 亚洲少妇视频| 黑丝少妇| 天美91| 97免费在线视频在线观看| 97国产超碰| 人人妻人人操人人乐| 性天堂| 亚洲色图20p| 眼镜人妻101.com| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 亚洲丝袜少妇在线| 这里有精品| 九九九热| 免费网站观看www在线观| 久久男人精品| 中文字幕av一区二区三区人妻少妇| 欧美特大黄一级片片免费| 97在线播放| 日韩精品区二区三区不卡| 国产又黄又爽| 欧美色图成人网一区二区 | 玖玖大干人妻| 天天综合色| 中文字幕天堂在线| 亚洲精品蜜桃久久久久久久| 天天做日日做天天欢。| www.人人摸在线视频| 另类图片五月天| 国产亚洲福利第一页丝袜| 国内97干免费看| 成人免费看吃奶视频网站| 啊啊啊啊啊啊啊网址在线观看| 久久久国产三级黄色片| 啊啊啊啊啊啊啊啊在线观看| 东北女人的毛片| 欧美日韩操逼动图| 亚洲天堂资源网| 欧洲亚洲人妻无码中字久久三区四区 | 久久久久元码视频| 99人人干| 久久伊人亚洲AV无码网站| 精彩久久中文| 91婷婷伊人狠人| 无码人妻一区二区三区色欲aⅴ| 中文字幕免费在线观看| 日韩精品三区四区| 日韩黄片视频试看| 亚洲欧美清纯| 97精品国产手机| 婷婷五月天补不补| 天天综合网日韩7799| 国产白丝AV| 91精品婷婷国产综合久久竹菊| 日韩无码专区| 亚川综合视频| 97综合国产| 941超碰| 精品国产网站| 国产人伦a片信息免费片| 家庭乱伦麻豆| 清纯唯美综合| 亚洲色悠悠久久88| 香一区二区三区| WWW黄片COM| 激情五月天插| 91人妻少妇| 丝袜美腿91| 亚洲色香| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美色女人| 欧美 日韩第一性色| 亚洲天堂另类美腿| 999国产精品999| 国产性爱在线视频一区二区| 俄罗斯及免费在线看| 亚洲第二页| 色婷婷淫色网| 你草精品在线视频| 亚洲精品97在线| 欧美色色色| 人妻乱仑一区二区三区| 92性色国产午夜福利在线661| 亚洲丝袜少妇在线| 亚洲日韩资源| 亚洲涩图欧美| 中文字幕AV片| 99久久综合| 丁香五月激情综合| 亚洲AV无码成人精品久久| 岛国网址国产| 老熟女乱伦一区| 女沟厕偷窥piss小便| 91性网| 四虎av在线| 国产欧美日产一区二区三区 - 国产欧美日| 国产白嫩精品久久| 麻豆乱码久久精| 久久久久久大| 东京太热久久久| 久7色| 蜜桃色色网站视频三区| 另类在线| 久久午夜伦| 九热视频| 亚洲Av无码成人精品国产| 人干人人人操人人摸| av在线一区二区三区| 高清国产性猛交xxxx乱大交| 91一区二区三区蜜桃| 手机午夜电影神马久久| 国产在线观看一区二区三区| 日本孕妇一区二区视频操逼免费看| 久久男人的天堂| 男人的天堂1024| 96麻豆精品一区二区三区| 美女黄站| 网友自拍第一页| 国产精品直播在线观看直播| 婷婷av在线中文字幕| 一级做a爰片性色毛片久久| 五月丁香黄色网| 女性91网站| 综合欧美亚洲| 91网九色蝌蚪操熟女| 亚洲国产成人精品999| 95自拍视频在线观看| 午夜精品五区| 久久激情视频| 久久免费老司机精品| 岛国小电影| 麻豆国产成人精品| 国产夫妻性生活视频| 色原狠狠天天天| 特色a在线上| 欧洲久久一二线| 伊人热综合| 黄在线| 9久精品| 台湾佬中文娱乐自偷自拍| 亚洲av热热色| 久久熟女嫩草成人片免费 | http://qxhbdz.com| 69AV女优男人的天堂| 美日韩一二三区| 性欧美| 少妇久久| 狠狠中文字幕| 久久人人看| 日韩中文字幕熟妇人妻| 久久偷偷色综合蜜桃| 欧美色性情| 欧美日韩国产另类综合| 亚洲色诱惑| 日日天天久久啊啊aaa| 91欧美性| 狠狠躁久久躁| 大香蕉视频一二三区| 91九色精品熟女内射| 青青草亚洲一区 | www.狠狠干.coom| 国产少妇高潮| 色欧美综合| 国产精品自拍xxxx| 欧美九九爱| 久久久九九| 色哟哟 日韩精品| 天天干人人干天天日97| 人妻啊啊人妻啊| 东京热熟女亚洲视频网站| 啊啊啊啊好疼| 国产综合网站在线播放 | 欧美精品日韩久久久九| 综合熟女| 超碰在线第一页| 日韩色| 欧洲一级性爱视频在线观看| 91扒丝袜综合在线| 就去色综合| 操逼啊啊啊91| 91欧美偷拍| 黄色工厂这里只有精品| 亚州一区二区成人片免费| 97精品国产97久久久久久免费| 天天干夜夜操一区二区| 免费看黄片现成| 天天影视网综合少妇| 黑人与人妻| 一二三区操逼国产91| 人妻久久久久久| 久久午夜色播影院免费高清| 国产无套粉嫩白浆在| 素人无码中文字幕| 狠狠色伊人亚洲综合网站色| 天堂蜜桃无码视频一区二区| 中文字幕青青草| 亚欧成人中文字幕一区| 99xav| 综合伊人激情| 大香网伊人久久综合| 玖玖草久草99蜜月一区二区三区| 另类亚洲一区二区三区| http://qxhbdz.com| 天天综合官网| 久久婷婷精品| 久久久少妇诱惑精品视频| 日韩精品碰碰| 香港日本韩国人妇99www.wccm20| 又大又大又大又粗爽高潮观看| 丁香五月影院| 91观看 国产白丝| 久久久精品视频免费观看| 欧美日韩青操| 国产女人高潮嗷嗷嗷叫小说 | 亚洲精品国产拍免费91在线| 午夜亚洲国产理论秋霞| 久久av色| 免费久久一级毛片大黄| 91色综合激情| 99亚洲精品| 操学生天天| 成人av影院在线观看| 五月天综合网| 精品国产一区二区三区香蕉欧美| 欧洲一区二区三区免费| 亚洲无码成人精品| 男人天堂综合| 亚洲性爱成人| 黄色高清久久无码依人| 欧美激情性久久久久久| baiduhicn.com。| 美国人人操人人操| 97在线资源| 亚洲免费人妻在| 久久蜜桃一区二区| 精品国产乱码久久久久久影片| 97欧美超碰| 吉川爱美98堂在线| 欧 美 自 拍 偷 拍| 5252色欧美在线| 久久黄片国产一区二区| 久久m| www.色操逼| 国产精品福利视频| 亚洲国产一级中文综合久久天堂在线免费观看 | 一级免费啪啪片| 91天堂网| 老色69| 亚洲一区二区精品福利| 在线视频资源| 国产精品久久久久绯色| 少妇3P性爱自拍| 大香蕉日韩| 春色校园综合网| 天天搞在线综合网| 夜夜久久久| 在线日韩视频| 91美女视频在线观看| 污污污8888| 黄页视频网站野外| 亚洲一区二区AV| 久久超碰97中文字幕| 亚洲欧美自拍偷拍| 九九碰九九爱97超碰| 97日视频| 人人摸人人添人人操| 91欧美情色| 亚洲 小说 欧美 激情 另类| 日本天天干天天日一区| 怡红院视频在线| 亚洲 一区二区 自拍| 亚洲中文字幕久久无码精品| 久久久999日本大片| 国产高清精品一区二区三区毛片| 久久99干一本高清| 久久这里精品国产99丫e6| 高清国产成人无码| 日韩大香蕉AV影片| 国产精品密臀网在线观看| 色色五月天婷婷| 操逼日批| 91熟女丨91老女人| 亚州欧美一区| 欧美午夜精品久久久久久超碰| 加勒比在线视频一区二区三区 | 六月婷婷色综合| 日本操逼视频不卡直接放| 久久线上视频免费看| 99热免费精品| 性爱动态120秒| 蜜桃av综合网发布| 性爱综合一区二区| 中文字幕精品专区搜索结果91| 神马久久久久久久久久久久| 伊人五月天| 天天做日日爱夜夜爽| 色欲天天综合久久久无码网中文| 人妻人久久精品中文字幕| 狠狠图片青青草| 看看小穴| 丁香五月天啪啪| 成人AV超碰免费在线| 九久久精| www久久精品| 97 九色| 大香伊人在线一区| 天堂av2019| 激情综合五月婷婷| 中国探花熟女| 在线欧美69V免费观看视频| 搡老女人老91二区| 加勒比性爱成人在线| 动漫av中文| 91性生活久久久| 久久久久久久九九九九九九| 狠狠狠狠狠干| 午夜丁香| 免费综合亚洲中文| 8050无码八戒| 国产AV毛片| 亚洲国产av中文字幕久久| 国产精品人妻免费精品| 女生久久网| 欧美中文综合| 国产一区在线播放| 超碰在线一区二区三区| 九99久久| 欧美性性性| 亚洲色图A| 久久久四区| 欧美少妇色图| a'v在线资源| 免费观看成人www精品视频| 人人弄人人摸| 亚洲国产欧美一区二区潘金莲| 人妻少妇久久| 日韩免费高清大片在线| 超碰精品日韩欧美国产| 欧美黄色手机在线观看| 欧美18老人禁| 欧美呦呦性爱| 国产精品黄色三级av| 99久久久无码精品国产人| 人人贴人人摸| 国产精品ww久久| 亚洲国产精品有声| 成人三一级一片aaa| 欧亚成人| 日韩性爱高清免费视频| 9l视频自拍9l九色成人| 五月丁香色婷婷| 暖暖精品二区三区观看| 天天弄欧美| 日本天堂在线播放| 青青草色AV| 欧美18老人禁| 亚洲精品人妻在线| 精品一区二区成人动漫| 色色色综合网|