- 博客(65)
- 资源 (1)
- 收藏
- 关注
原创 error: expected constructor, destructor, or type conversion before ‘(‘ token
将VS+QT(MSVC)环境下编写的代码转到纯QT环境下,并更改编译环境为MinGW后,所用的大华相机SDK头文件“IMVApi.h”报错:error: expected constructor, destructor, or type conversion before '(' token。,并确保所有相关宏在非Windows环境下被忽略。上述错误是由于MSVC环境下的。在MinGW下应该使用正确的拼写。
2024-05-18 13:40:49 145
原创 error: ‘_Frees_ptr_opt_‘ has not been declared
在编译器命令行或者代码中定义这些宏,使其在非MSVC环境中被忽略。在代码的开头(如#endif#endif#endif#endif这样编译器在遇到这些宏时就会忽略它们,从而避免编译错误。
2024-05-18 13:20:33 232
原创 FANUC机器人怎么让TP程序自动执行
3、按住安全开关(Deadman)+shift解除报警。4、按下CYCLE START程序即开始自动运行。注意:使用自动模式前请确认程序可安全运行。1、将机器人扭到Auto模式。2、示教器扭到OFF模式。
2024-04-07 17:01:16 251
原创 电脑与FANUC机器人通过Modbus TCP协议实现网口通讯
通过Modbus TCP协议将电脑处理好的数据发送到机器人(附libmodbus库)
2024-04-07 16:52:40 538
原创 额外的迭代器
虽然iostream类型不是容器,但标准库定义了可以用于这些IO类型对象的迭代器。这些迭代器将它们对应的流当作一个特定类型的元素序列来处理。此函数接受第二个参数,这个参数必须是一个指向给定容器的迭代器。插入器是一种迭代器适配器,它接受一个容器,生成一个迭代器,能实现向给定容器添加元素。* front_inserter创建一个使用push_front的迭代器。反向迭代器就是在容器中从尾元素向首元素反向移动的迭代器。* back_inserter创建一个使用push_back的迭代器。
2023-09-21 14:44:43 125
原创 lambda
其中,capture list(捕获列表)是一个lamda所在函数中定义的局部变量的列表(通常为空);但与普通函数不同的是,lambda必须使用尾置返回来指定返回类型。与普通函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。与普通函数不同的是,lambda可以定义在其他函数内部。注:一个lambda只有在其捕获列表中捕获一个它所在函数中的局部变量,才能在函数体中使用该变量。注:如果lambda的函数体包含任何单一return语句之外的内容,且未指定返回类型,则返回void。
2023-09-19 18:15:23 35
原创 容器适配器
除了顺序容器外,标准库还定义了三个顺序容器适配器:stack、queue和priority_queue适配器。适配器是标准库中的一个通用概念。容器、迭代器和函数都有适配器。适配器本质上是一种机制,能使某种事物的行为看起来像另外一种事物一样。queue和priority_queue适配器定义在queue头文件中。stack类型定义在stack头文件中。所有容器适配器都支持的操作和类型。
2023-09-19 14:25:37 37
原创 调试帮助(assert和NDEBUG)
assert的行为依赖于一个名为NDEBUG的预处理变量的状态。如果定义了NDEBUG,则assert什么也不做。默认状态下没有定义NDEBUG,此时assert将执行运行时检查。我们可以使用一个#define语句定义NDEBUG,从而关闭调试状态。除了用于assert外,也可以使用NDEBUG编写自己的条件调试代码。如果NDEBUG未定义,将执行#ifndef和#endif之间的代码;首先对expr求值,如果表达式为假,assert输出信息并终止程序的执行。如果表达式为真,assert什么也不做。
2023-09-13 19:31:59 93
原创 内联函数和constexpr函数
编程时有时需要经常重复使用一些相同的表达式,为了使程序简洁,我们可以自定义一些内含简单算法的函数,自定义函数有方便阅读理解、确保行为同一、修改计算过程方便(不用一处处修改表达式)和可重复利用等优点。与其他函数不同,内联函数和constexpr函数可以在程序中多次定义。毕竟,编译器想要展开函数仅有函数声明是不够的,还需要函数的定义。不过,对于某个给定的内联函数或者constexpr函数来说,它的多个定义必须完全一致。基于这个原因,内联函数和constexpr函数通常定义在头文件中。
2023-09-13 18:54:13 57
原创 递归函数(recursive function)
如果一个函数调用了它自身,无论这种调用是直接的还是间接的,都应该将这种函数称为。注:main函数不能调用它自己。
2023-09-13 14:55:48 71
原创 含有可变形参的函数
和vector不一样的是,initializer_list对象中的元素永远是常量值,我们无法改变initializer_list对象中元素的值。initializer_list是一种标准库类型,用于表示某种特定类型的值的数组。如果函数的实参数量未知但是全部实参的类型都相同,我们可以使用。
2023-09-13 13:46:33 21
原创 main:处理命令行选项
然而,有时我们需要给main传递实参,一种常见的情况是用户通过设置一组选项来确定函数所要执行的操作。第二个形参argv是一个数组,它的元素是指向C风格字符串的指针;第一个形参argc表示数组中字符串的数量。当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串,接下来的元素依次传递命令行提供的实参。最后一个指针之后的元素值保证为0。注:当使用argv中的实参时,一定要记得可选的实参从argv[1]开始;argv[0]保存程序的名字,而非用户输入。其中argv指向char*。
2023-09-12 14:54:37 35
原创 break、continue、goto
语句终止最近的循环中的当前迭代并立即开始下一次迭代。continue语句只能出现在for、while和do while循环的内部,或者嵌套在此类循环里的语句或块的内部。和break语句类似的是,出现在嵌套循环中的continue语句也仅作用于离它最近的循环。和break语句不同的是,只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue。语句负责终止离他最近的while、do while、for或switch语句,并从这些语句之后的第一条语句开始继续执行。
2023-09-11 10:47:05 28
原创 左值和右值
指那些求值结果为对象或函数的表达式。一个表示对象的非常量左值可以作为赋值运算符的左侧运算对象。左值是代表一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写)操作;这也就是为什么左值可以被赋值的原因。指一种表达式,其结果是值而非值所在的位置。当一个符号或者常量放在。右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。右值指的是引用了一个存储在某个内存地址里的数据。简单来说,左值相当于。
2023-09-08 18:30:19 25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人