zoukankan      html  css  js  c++  java
  • (1.21)思考题

    (1.21)为什么C语言要分. h和. c文件,这样有什么好处?
    (1)能不能把函数及变量的声明放在源文件里?
    (2)能不能把函数和变量的定义放在头文件里?
    (3)能不能在两个头文件里都声明同一个函数或者变量?
    (4)能不能在两个源文件里都定义同一个函数或者变量?

    回答:

    (1.21)为什么C语言要分. h和. c文件,这样有什么好处?
    .h文件是头文件,内含函数声明、宏定义、结构体定义等内容,.c文件是源程序文件,内含函数实现,变量定义等内容。编译器会默认对某些后缀的文件采取某些动作。分为.c文件和.h文件有利于在实际中做工程时实现优化代码和便于后期维护的目的。
    好处:
    ①方便:包含一些文件需要的共同的常量,结构,类型定义,函数,变量声明等。如果在一个.c文件中声明结构体、函数等,在另一个.c文件中引用相应的结构体等就必须再做一次重复工作。而将这些放在一个头文件中,.c文件中需要就直接引用头文件,更加方便。
    ②.h文件提供给外界的接口
    ③使用代码一种是直接通过源代码,一种是通过头文件。.h文件可以免于公布源代码,可以让使用者通过函数原型等使用。
    ④.h文件可以加强类型安全检查:如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这能减轻程序员调试、改错的负担
    ⑤减少初学者学习难度:初学者在编程中要实现某一功能可以通过已有的库函数直接调用,不必十分了解怎么写该函数

    (1)我认为可以把声明放在源文件里。因为声明与定义的区别在于是否有初始化,初始化之后就是定义,声明没有给变量分配存储空间。而且在本源文件中是可以使用另一源文件中已声明的变量或函数等,说明声明是可以被放在源文件里的。
    (2)我认为不能把函数和变量的定义放在头文件里。因为头文件可能会被多个源文件包含,如果把函数和变量的定义放在头文件中,可能会导致多重定义,所以不能把函数和变量的定义放在头文件里。
    (3)我认为在一个源文件同时包含这两个头文件的情况下,如果这个函数或变量没有被使用的话,那么在两个头文件中都声明并没有太大关系,而且并不占存储空间;但如果这个函数或变量在源文件中有被初始化,有被使用的话,有可能在查找时同时查找到两个头文件,有可能会导致重复定义。
    (4)我认为不能在两个源文件里都定义同一个函数或者变量。因为如果两个源文件都定义同一个函数或者变量,在编译的时候正常编译,但是在链接的时候会有两个地方,导致编译器无法识别应该是哪一个,导致链接错误,所以不能在两个源文件里都定义同一个函数或者变量。

  • 相关阅读:
    linux expr命令执行问题
    Virtual Box设置Host only模式的网络互通问题
    Linux下管理软件的方法
    转载 AMI方案和Insyde方案
    笔记二(名词详解)持续更新。。。
    笔记一(固件、BIOS、UEFI)
    Cache As Ram
    (二十四)C语言之文件
    (二十三)C语言之位运算
    (二十二)C语言之typedef
  • 原文地址:https://www.cnblogs.com/cyn522/p/12230856.html
Copyright © 2011-2022 走看看