日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C2146和C4430错误:循环引用错误

發布時間:2025/5/22 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C2146和C4430错误:循环引用错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天編譯程序的時候發生了C2146和C4430錯誤:

1>e:/rt21/src/dbms/db_warn_server/db_warn.h(30) : error C2146: 語法錯誤 : 缺少“;”(在標識符“alm_msg111”的前面)
1>e:/rt21/src/dbms/db_warn_server/db_warn.h(30) : error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>e:/rt21/src/dbms/db_warn_server/db_warn.h(30) : error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int

?

在網上找到了原因和解決方法:

如果存在兩個類的頭文件a.h和b.h,在a.h中有這樣的語句:#include "b.h",在b.h文件中有這樣的語句:#include "a.h"???且在一個類中有另一個類的對象時???那么就會出現這樣的錯誤:

error C2146: syntax error : missing ';' before identifier '使用的對象名'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

解決的辦法就是不要讓有這樣的關系的頭文件形成環形的引用? 在不需要的類中去掉那個不需要的類的頭文件的引用即可。

?

檢查發現原來是我試圖用一個大的頭文件db_warn_define.h包含所有需要的引用文件,不小心也包含了自己工程內的頭文件db_warn.h;同時我在db_warn.h中又調用了db_warn_define.h,改掉以后就好了。由此構成了循環引用。記下來備查。

?

總結

以上是生活随笔為你收集整理的C2146和C4430错误:循环引用错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。