
如果问题中最困难的部分是基本概念,那么许可能会不同意,但实际上是. 当我在高中学习物理时,我的老师的重点是概念—必须理解概念,所以困难的问题就变得容易了. 如果您可以清楚地分析一个物理问题中存在多个物理过程,每个过程都遵循该物理定律(例如动量守恒,牛二定律,能量守恒),那么可以很容易地列出该过程的方程式根据定律,N个过程必须是N个N元方程,问题得以解决. 即使这是高中物理竞赛的问题,最困难的是:
(1),混淆您的概念,以致您无法分析几个物理过程,也不能分析物理定律以及随后的物理过程;
(2). 存在高阶方程,因此无法求解列出的方程. 而且后者已经属于数学范畴,所以最困难的部分是掌握清晰的概念;
编程同样如此. 如果概念很明确,则基本上没有问题(很难进行数学上的选择,例如算法的选择,时间和空间的选择以及效率,资源的稳定性和平衡性). 但是,掌握清晰的概念并不是那么容易. 以下面的示例为例,看看您是否有一个清晰而透彻的理解.
// a.h
void foo();
// a.c

#i包含“ a.h” //我的问题出来了: 这句话是否必需?
void foo()
{
返回;
}
// main.c
#i包含“ a.h”

int main(int argc,char * argv [])
{
foo();
返回0;
}对于以上代码,请回答三个问题:
句子#a在a.c中是否包含“ a.h”?
为什么您经常看到与xx.c中包含的内容相对应的xx.h?

如果未编写a.c,编译器是否会自动将.h文件的内容与同名的.c文件绑定?
(请在10分钟内仔细考虑以上三个问题,不必担心以下说明.

您考虑的越多c语言文件,对下面的了解就越深. )
好的,时间到了!请忘记上面的三个问题以及您对这三个问题的想法,然后慢慢听我说. 正确的概念是: 从C编译器的角度来看,.h和.c都是浮云,并且.txt和.doc的更改之间没有主要区别. 换句话说,.h和.c之间没有必要的连接. 在.c文件中定义的具有相同名称的变量,数组和函数的声明通常放置在.h中,并且需要在.c之外使用的声明. 此语句的用途是什么?只是为了使您易于在需要使用这些声明的地方加引号. 因为#i宏实际上包含“ xx.h”的意思是删除当前行,并将xx.h的内容完整地插入到当前行. 因为有很多地方可以编写这些函数声明(每个地方必须在使用前声明在xx.c中调用函数的地方),所以宏#include“ xx.h”简化了许多行代码—让预处理器替换本身. 换句话说,实际上只是在需要编写xx.c中的函数声明的地方调用xx.h(您可以少写几行). 至于谁包括.h文件,是.h还是.c或与此相关. H. C的名字相同,没有必要的关系.
所以您可能会说: 啊?然后,我通常只想在xx.c中调用一个函数,但要包括xx.h文件. 替换宏后,没有很多无用的语句吗?是的,它的确引入了很多垃圾,但是为您节省了很多笔和墨水c语言文件,并且整个布局看起来很清新. 这就是鱼和熊掌不兼容的原因. 无论如何,更多的声明(.h通常仅用于放置声明,而不用于定义,请参阅尴尬的“过马路,左右左右看”)是无害的,并且不会影响编译,为什么不这样做?
低头看看上面三个问题,答案是否容易?

答案: 不一定. 这个例子显然是多余的. 但是,如果.c中的函数还需要调用同一.c中的其他函数,则该.c通常会包含具有相同名称的.h,因此无需担心声明和调用Statement的顺序,并包含相同的名称. H通常会放在的开头. C). 有许多项目甚至将此代码作为代码规范来编写,以标准化清晰的代码.
答案: 我已经在1中回答了.
答案: 不. 问这个问题的人肯定不清楚,否则他们只是想在水中钓鱼. 非常令人讨厌的是,中国的许多考试都有如此糟糕的问题. 恐怕其他人会有一个明确的概念,我肯定会使候选人困惑.
语法和概念很容易理解,很难说出来. 有以下三个技巧:
不要头昏眼花,但要花些时间思考和阅读更多书籍;
读书以阅读好书,并要求人们问强人. 坏书和坏人会给你一个错误的概念并误导你;
用勤奋来弥补勤奋是很好的训练.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-184077-1.html
加油啊看好你哟~