zoukankan      html  css  js  c++  java
  • 179一个错误的认识

    一编译

     说明函数fun 重定义了。

     我们说函数的定义一定要写在源文件中,为什么不能写在头文件中?因为头文件要在我们的项目中在多个位置被包含,头文件的本质就复制替换。如果函数定义写在了头文件中,那么就相当于在程序的多个位置,出现了和 fun 同名的函数。所以函数的定义要写在源文件中,而源文件不会被包含,所以源文件中的内容一定是独一份的。

    这里为什么fun会 重定义呢?

    之前说过,像结构体只是在所在的文件中可见,在一个文件中定义了 struct cc 这个结构体,在另一个文件中再定义 struct cc 这个结构体,他俩之间没有任何的关系。只在自己所在的文件中可见。

    而函数的定义是只能存在一份,相当于是全局的!也就是整个工程都只能存在一个fun。fun在任何位置都好使。

    所以,定义放在源文件中,声明(宏,typedef,结构体的声明,函数声明)放在头文件中。  

     另外  一个问题

    如果想要结构体互相嵌套的时候,要使用指针。为什么?

    因为指针不管是什么类型的,在32位编译器环境下就是4字节。

    所以

    结构体中出现未定义 这个问题就是未知大小

  • 相关阅读:
    2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest E:Black or White
    树状数组--二叉索引树
    P1654 OSU!-洛谷luogu
    P1365 WJMZBMR打osu! / Easy-洛谷luogu
    P4550 收集邮票-洛谷luogu
    P2257 YY的GCD--洛谷luogu

    P3200 [HNOI2009]有趣的数列--洛谷luogu
    catalan数
    lucas定理
  • 原文地址:https://www.cnblogs.com/dabing0983/p/10559556.html
Copyright © 2011-2022 走看看