网站内搜索关键字,网页游戏折扣平台,畅言wordpress,垂直版面网站文章目录 引用传递和指针传递的区别和联系如何创建一个空的WINDOWS桌面项目C编程中函数声明、定义和链接的基本概念 引用传递和指针传递的区别和联系
case ID_SETTING_FONT:GetDrawFont(hWnd, gs_logFont, gs_TextColor); break;logFont 和 pColor 的用法体现了 C 中两种… 文章目录 引用传递和指针传递的区别和联系如何创建一个空的WINDOWS桌面项目C编程中函数声明、定义和链接的基本概念 引用传递和指针传递的区别和联系
case ID_SETTING_FONT:GetDrawFont(hWnd, gs_logFont, gs_TextColor); break;logFont 和 pColor 的用法体现了 C 中两种不同的参数传递方法引用传递和指针传递
从某种角度来看引用传递如 LOGFONT logFont和指针传递如 COLORREF* pColor在效果上是相似的尤其是在它们允许函数修改外部传入变量的这一点上。但是它们在语法和某些语义上存在差异
修改外部变量
无论是引用还是指针传递函数都能修改调用者传递的变量。在引用传递中你直接操作原始变量就像它是本地变量一样。在指针传递中你需要通过指针间接操作原始变量。
语法和可读性
引用传递在使用时更像是直接操作变量这使得代码通常更简洁、更易读。指针传递涉及间接引用通过指针这在语法上更复杂一些需要显式地使用指针和解引用操作。
可选参数和空值处理
指针可以被设置为 NULL 或 nullptr这允许函数检测和处理“没有对象”的情况使指针传递适合于可选参数。引用必须引用某个实际存在的对象不能是空的因此它不适合表示可选的参数。
安全性
引用通常被认为在某些方面更安全因为它们保证引用了一个有效的对象除非你有非常不安全的代码。指针可能是 NULL或者可能指向无效的内存区域这增加了出错的可能性。
综上所述虽然这两种方法在允许函数修改传入变量这一点上是相似的但它们各有特点和适用场景。引用传递适合于必须提供的参数而指针传递更灵活适合于可选参数或可能不提供的参数。 如何创建一个空的WINDOWS桌面项目 但上述操作会创建一个全新的空文件因此是不推荐的如果选用用下面的WINDOWS桌面应用程序代码框架会自动生成如图 自动生成的框架界面如下图所示 C编程中函数声明、定义和链接的基本概念 头文件和函数声明头文件通常是.h或.hpp文件用于声明函数、类、变量等。声明仅仅是告诉编译器该函数的存在其具体实现定义可以在别处。 源文件和函数定义函数的具体实现即定义通常放在.cpp文件中。这个定义是函数声明的具体实现包含了函数应当执行的具体代码。 包含头文件当您在一个.cpp文件中包含了声明函数的头文件时您实际上是在告诉编译器这里有一些函数、类等的声明请在编译时考虑它们。 链接过程在C中当您编译一个项目时编译器首先编译每个源文件.cpp文件将它们转换成对象文件.obj文件。然后链接器将所有的对象文件和必要的库文件一起链接生成最终的可执行文件。在链接过程中如果一个.cpp文件中调用了另一个.cpp文件中定义的函数链接器将负责找到这个函数的定义并正确地链接它们。 Visual Studio的工作方式在Visual Studio这样的集成开发环境中当您创建一个项目并添加多个.cpp文件时它会自动处理编译和链接的过程。只要您正确地在一个.cpp文件中定义了函数并在其他需要调用这个函数的.cpp文件中包含了相应的头文件Visual Studio会在构建过程中自动找到并链接这些函数定义。
总结在您的情况下如果您在一个头文件中声明了函数在一个.cpp文件中定义了它并且另一个.cpp文件包含了这个头文件那么只要这些文件都是同一个Visual Studio项目的一部分Visual Studio会在编译和链接过程中自动处理一切确保函数能被正确找到和使用。