大家好欢迎光临
在这个视频中, 我们将讨论编译器警告中的重要提示｡
不要忽略编译器警告｡
很多时候, 你会在构建输出窗口中看到它们, 而一些新的程序员会忽略它们｡
你不想忽略它们｡
基本上, 编译器发出的警告是在告诉你, 你的代码中有一个可能导致潜在问题的问题｡
代码在语法上是正确的｡
编译器能够生成目标代码并生成程序, 但它不是完美的代码,
代码可能会有问题｡
这只是一个警告, 因为它在语法上是正确的, 你可以生成机器码｡
例如, 如果我们创建一个名为total的变量, 然后我们试图显示该变量total的值,
我们将在构建输出窗口中得到一个警告, 说total已被使用｡
但它没有, 但它没有初始化｡
这基本上意味着total没有与之相关的值｡
它在内存中的某个地方, 它没有值｡
因此, 当您尝试显示该值时, 它可以显示任何内容｡
同样, 它在语法上是正确的, 但你并不需要初始化你的变量｡
所以编译器会告诉你, 所以你不想忽略编译器错误｡
事实上, 大多数程序员将警告视为错误, 并修复所有警告｡
现在我们实际上打开了所有的编译器警告｡
警告, 因为有不同类别的警告, 你可以打开/关闭｡
我们使用dash w all编译器标志, 因此显示所有警告, 您确实应该修复所有警告｡
让我们看一个代码示例, 比如, 这是我们的Hello world示例｡
让我们像刚才幻灯片中那样创建一个变量total, 不给它赋值, 然后试着把它打印出来｡
所以如果我们说total是, 我们试着把它打印出来, 然后我们试着编译它, 你会看到我们得到一个警告,
对吧？
总的来说是在初始化时使用的｡
我们还可以继续这个项目｡
如果我们去构建, 我们可以运行它, 因为它能够生成代码｡
只是个警告
我们看到的是total是零, 实际上可以是任何数字, 因为它还没有在C程序中初始化｡
你总是想初始化所有的变量, 这样它们就可以包含一些有效的值｡
在C语言中, 很多时候, 变量存储的实际内存是从以前的程序继承来的｡
所以如果你不初始化你的变量, 它可能是任何东西｡
在这种情况下, 当你跑的时候, 它碰巧是零｡
但我们只是运气好, 对吧？
它可以是任何值｡
所以你总是想修复这些警告｡
现在, 如果我们回到我们的Hello World应用程序, 让我们转到项目3并使其成为活动项目｡
如果我们有一个Hello world类型的应用程序, 我们将创建一个实际的变量, 再次,
total, 我们将初始化它, 这样我们就不会有初始化警告, 我们将尝试编译它｡
在这种情况下, 当我们编译时, 我们会看到另一种类型的警告, 对吗？
未使用的变量｡
这就是说, 我们创建了一个变量, 但从未使用过它｡
我们从来没有展示过｡
我们从来没有用它来计算或算术或类似的东西｡
那么我们为什么要创造它呢？
为什么你要创建一个你从来不用的变量？
这是一种浪费的代码, 死代码｡
所以你应该删除它, 对吧？
因为我们有一个未使用的变量, 所以我们可以删除初始化, 但仍然不使用它, 对吗？
所以如果我们真的有这样的东西, 我们保存它, 然后再次编译它, 你会看到未使用的变量｡
所以未使用的变量警告优先于初始化警告, 我们从未使用过它｡
所以我们会在代码中看到很多警告, 我们学习了if语句, while循环,
C语言的所有不同概念, 我们会在后面的课程中讨论其中的一些警告｡
但你们真正想从这节课学到的是警告是一件大事｡
你不想忽略警告｡
事实上, 您应该有一个策略, 无论何时看到警告, 您的目标都是修复它｡
不要忽视警告｡
谢谢大家｡