声明一个没有内容的函数;-然后是内容{}- c++
Declaring a function without contents ; - and then with contents {} - c++
我不确定术语,所以我不知道如何表达我的标题;如果有人想用正确的术语来编辑它,那就好了。
当我写代码时,我总是按时间顺序写。我把主槽放在底部,然后向上。然而,我最近读了一个教程,做了一些我以前从未见过的事情。
在include之后的顶部,程序员写道:
void inccell(int pos, int width, unsigned char *board);
void deccell(int pos, int width, unsigned char *board);
我以前没见过这个;我总是用void myfunction (args) { stuff }
。我还没有在;
的情况下见过它。在此之后,在程序的后面,他定义了函数的内容:
void inccell(int pos, int width, unsigned char *board)
{
++board[(pos-width)-1];
++board[ pos-width ];
++board[ pos-width +1];
++board[ pos-1 ];
++board[ pos+1 ];
++board[(pos+width)-1];
++board[ pos+width ];
++board[ pos+width+1 ];
return;
}
void deccell(int pos, int width, unsigned char *board)
{
--board[(pos-width)-1];
--board[ pos-width ];
--board[ pos-width +1];
--board[ pos-1 ];
--board[ pos+1 ];
--board[(pos+width)-1];
--board[ pos+width ];
--board[ pos+width+1 ];
return;
}
;
和{ }
函数的参数是相同的,所以据我所知它不是"过载";我相信重载是用来调用一个函数的不同的参数集,即myfunc(myint, mystr, mybool)
和myfunc(myint, mystr)
都可以是有效的。
我可能错了。
然而,谁能给我解释一下为什么他在顶部声明函数,如果他没有重载,它的目的是什么?
谢谢。
这些是函数声明。它们只是告诉编译器这些函数的存在和签名,这样它们的定义就可以出现在调用点之后:
void foo(); // DECLARATION
int main()
{
foo(); // CALL (would be illegal without the declaration, because the compiler
// wouldn't know about foo(), since it hasn't met its definition yet)
}
#include <iostream>
void foo() // DEFINITION
{
std::cout << "Hello, world!";
}
首先是声明函数,然后定义它。
当函数在定义之前使用时,需要前向声明。(强制)
如果函数在顶部定义,则不需要声明函数。
用于编译器检查参数的数据类型是否匹配,填充调用函数的地址(BACKPATHCHING)…
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- boost::asio如何生成多个协同程序,然后加入它们
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 在std::thread中,joinable()然后join()线程安全吗
- C++:如何读取分离变量,然后读取向量
- 为什么我的递归函数按降序打印,然后按升序打印?
- 等待整个 omp 块完成,然后再调用第二个函数
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使变量从 x 到 y,然后从 y 返回到 x 并始终重复该过程
- 我有一个数组,我想输入一个范围,然后找到范围内所有偶数的总和?
- 如何正确地推回然后遍历堆中对象的向量?
- 我似乎无法为指针分配一个数组,然后更改数组的内容
- 如何在字符串中找到字符,然后在C++中提取其余的字符串
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 将加密消息从 php 发送到 C++ 应用程序,然后使用 CryptoPP 进行解密
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?