*在这里定义什么
what do * here define for?
#define xyz
static xyz myObject *__my_getitem (myObject* a, myObject *b) {
myObject *r;
.........
........
return r;
}
- 什么是
static
? xyz
static
做什么- 为什么
__my_getitem
面前有*
myObject* a
和myObject *a
有什么区别(*
的位置(
它什么是
static
?
在不同的上下文中意味着不同的东西;你需要阅读你的书才能理解它的所有含义。在这种情况下,这意味着该函数仅在此源文件中可用,而不在任何单独编译然后链接到它的源文件中可用。
xyz
static
做什么?
引起混乱。它是一个空宏(在第一行中定义(,因此,在编译程序之前,预处理器将用任何内容替换它。
为什么
__my_getitem
面前有*
*
类型后将类型更改为指针;因此这意味着该函数返回指向myObject
的指针。(顺便说一下,您永远不应该声明带有两个连续_
字符的名称;保留此类名称。
什么
myObject* a
和myObject *a
有什么区别(*的位置(
都没有;空格永远不会改变程序的含义,除非需要分隔标记。有些人为这两种风格的语义含义而进行圣战,但语言并不在乎。
什么是静态的?
以"static"开头的函数定义的作用域有限。它们只能由同一源文件中的函数查看和使用。当您的函数在当前文件中发生的处理之外没有任何值时,或者您希望限制使用,以便将来可以对其进行修改,并且由于其范围有限而减少后果,则可以这样做。
xyz 对静态做什么
在这种特定情况下,xyz 被替换为任何内容,因此它不执行任何操作。在一般情况下,它可能会修改编译器生成此函数的方式,从而更改"调用约定"。也就是说,xyz 对编译器具有某种意义,并且不是 C 语言的一部分。
为什么前面有一个星号__my_getitem
它显示 __my_getitem 函数返回指向 myObject 的指针。
myObject* a 和 myObject *a (* 的位置( 有什么区别
没什么,因为语法很灵活。
- #定义c-预处理器常量..我做错了什么
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在C/C++中将变量名定义为__00000001有什么好处吗
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- C++中"dependent name"的定义是什么?
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 在模板类之外定义友元函数的正确方法是什么?
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 自定义数据结构的优点是什么?
- [未定义提及'SetLastError@4']是什么意思?
- 在C++中,创建'n'数量的对象的推荐方法是什么,其中n是用户定义的。我该怎么做?
- 为了从自定义目录使用 CMake,我需要做什么?
- 此模板定义在 C++ 中是什么意思?
- 根据 c++ 标准在该宏定义中推送/弹出宏时的行为是什么
- 有什么方法可以在标头中定义和声明 extern 对象吗?
- 我可以在可移植库中使用什么定义来判断编译器是否Microsoft?