*在这里定义什么

what do * here define for?

本文关键字:什么 定义 在这里      更新时间:2023-10-16
#define xyz
static xyz  myObject *__my_getitem (myObject* a, myObject *b) {
     myObject *r;
     .........
     ........
     return r;
 }
  1. 什么是static
  2. xyz static做什么
  3. 为什么__my_getitem面前有*
  4. myObject* amyObject *a有什么区别(*的位置(

什么是static

在不同的上下文中意味着不同的东西;你需要阅读你的书才能理解它的所有含义。在这种情况下,这意味着该函数仅在此源文件中可用,而不在任何单独编译然后链接到它的源文件中可用。

xyz static做什么?

引起混乱。它是一个空宏(在第一行中定义(,因此,在编译程序之前,预处理器将用任何内容替换它。

为什么__my_getitem面前有*

*类型后将类型更改为指针;因此这意味着该函数返回指向myObject的指针。(顺便说一下,您永远不应该声明带有两个连续_字符的名称;保留此类名称。

myObject* amyObject *a有什么区别(*的位置(

什么

都没有;空格永远不会改变程序的含义,除非需要分隔标记。有些人为这两种风格的语义含义而进行圣战,但语言并不在乎。

什么是静态的?

以"static"开头的函数定义的作用域有限。它们只能由同一源文件中的函数查看和使用。当您的函数在当前文件中发生的处理之外没有任何值时,或者您希望限制使用,以便将来可以对其进行修改,并且由于其范围有限而减少后果,则可以这样做。

xyz 对静态做什么

在这种特定情况下,xyz 被替换为任何内容,因此它不执行任何操作。在一般情况下,它可能会修改编译器生成此函数的方式,从而更改"调用约定"。也就是说,xyz 对编译器具有某种意义,并且不是 C 语言的一部分。

为什么前面有一个星号__my_getitem

它显示 __my_getitem 函数返回指向 myObject 的指针。

myObject* a 和 myObject *a (* 的位置( 有什么区别

没什么,因为语法很灵活。

相关文章: