c++ - 为什么C/C++结构体类型可以在不同的文件中重新定义,但是变量和函数却报错?
问题描述
测试1.cpp:
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
测试2.cpp:
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
ps:test1.cpp和test2.cpp是同一个项目,运行正常。
但是,test1.cpp:
int a;
测试2.cpp:
int a;
将被重新定义,错误。
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
如果只是声明,而不是定义,为什么
测试.cpp:
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
被重新定义?
有什么区别
struct ListNode;
struct ListNode;
struct ListNode{};
他们都只是声明吗?
解决方案
推荐阅读
- python - 如何使用两个用户输入来简化 if elif 代码?
- java - 实现设计模式和 Spring MVC
- java - Spring JPA - 一对多 - 重新育儿
- c# - 如何在实体框架配置中播种动态数据
- python - How to get all data out of many to many field?
- sql-server - 如何在 SQL Server 2008 R2 中创建新的数据库图表时修复“无效的类字符串(MS Visual Database Tools)”
- c++ - CMake 3.13.2 似乎与 G++ 8.2.0 有问题
- android - 为什么这个图像在奥利奥及以上会缩小?
- ruby - Ruby Make Dir.glob 适用于包括波浪号的路径~
- python - 如何使用 xpath 从 html 表中检索项目列表?