c - 在 main() 函数之后在 C 中定义结构
问题描述
我已经学了相当多的java,现在我想学习C,我学到了一些关于结构和typedef的知识,但是当我将typedef放在函数之后并在main()
函数内使用它时出现错误main()
。
有没有办法声明类型但不在 C 中定义它们,所以我可以在main()
函数之后保留我的代码类似于函数?(我不确定这是否是好的做法,但我喜欢以这种方式组织我的代码)
解决方案
不要那样做。C 代码旨在由编译器读取,它会在不断读取文件时了解新定义。把东西移到下面main()
是没有用的。它也会让其他人感到困惑。
至于问题本身:在某些情况下,是的,你可以。如果您需要的一切都是前向声明,那么您可以这样做。但在大多数情况下,你会想要这个定义,所以它对你没有帮助。
例如,这将编译:
struct T;
int main(void)
{
struct T * p = 0;
return !!p;
}
// Later on you may define `struct T`
推荐阅读
- flutter - Flutter 聊天应用程序的 Bloc vs StreamBuilder
- java - 在调用堆栈之外调用 OperationFuture 时 SynchronizationContext 中的异常
- android - 列表中的小部件共享它们的状态
- python - 多线程 - 使用 selenium 从 Dataframe 打开 url 并使用 beautifulsoup 抓取
- c++ - 重复/相同数据类型的多个类成员
- ruby-on-rails - Rails - 初始化后更改日志路径
- vb.net - 如何在 vb.net 中运行代码时更新进度条
- angularjs - 期望正确构建 .exe 而没有任何给定指令的问题。但我得到了这些错误
- parameters - 无法在 ABAP 选择屏幕中编辑参数?
- html - 在 div > a 中为 img 添加 CSS