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

    一编译

     说明函数fun 重定义了。

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

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

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

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

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

     另外  一个问题

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

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

    所以

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

  • 相关阅读:
    并查集
    树状数组及二维树状数组
    maven工程编译成jar包
    The Salt Master has rejected this minion's public key!
    salt-minion dead but pid file exists 正确解决方法
    mysql 查找表的auto_increment和修改
    fastjson --JSONObject 和JSONArray 转换
    git 获取当前版本的commitid
    fastjson 使用笔记
    spring IOC 注解@Resource
  • 原文地址:https://www.cnblogs.com/dabing0983/p/10559556.html
Copyright © 2011-2022 走看看