首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Fortran过程指针获取函数名?

使用Fortran过程指针获取函数名的方法如下:

  1. 首先,定义一个过程指针,并将其关联到目标函数。例如,假设目标函数名为"target_func",其参数和返回值为real类型,可以使用以下代码进行定义和关联:
  2. 首先,定义一个过程指针,并将其关联到目标函数。例如,假设目标函数名为"target_func",其参数和返回值为real类型,可以使用以下代码进行定义和关联:
  3. 在代码中,可以通过获取过程指针的名称来获得目标函数的名称。Fortran并没有提供直接获取过程指针名称的内建函数或操作符。但是,可以通过编写一个自定义子程序来实现这一功能。以下是一个示例子程序:
  4. 在代码中,可以通过获取过程指针的名称来获得目标函数的名称。Fortran并没有提供直接获取过程指针名称的内建函数或操作符。但是,可以通过编写一个自定义子程序来实现这一功能。以下是一个示例子程序:
  5. 在上述代码中,我们假设目标函数名为"target_func",并将其硬编码在子程序中。
  6. 在需要获取函数名的地方,调用上述子程序,并传递过程指针作为参数。该子程序将返回目标函数的名称。
  7. 在需要获取函数名的地方,调用上述子程序,并传递过程指针作为参数。该子程序将返回目标函数的名称。
  8. 在上述代码中,我们声明了一个字符串变量"function_name"来存储函数名,然后调用子程序"get_proc_name"来获取目标函数的名称。

需要注意的是,上述方法中的目标函数名是硬编码的,需要根据实际情况进行修改。另外,此方法仅适用于获取过程指针所关联的函数名,而不适用于获取其他函数的名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用 Kotlin 的函数式编程 替代 GOF 设计模式用 Kotlin 的函数式编程 替代 GOF 设计模式函数式编程(FP)《Kotlin极简教程》正式上架:

"函数式编程", 又称泛编程, 是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它的基础是 λ 演算(lambda calculus)。...第一个 FORTRAN (FORmula TRANslating 的缩写)编译器 1957.4 正式发行。FORTRAN 程序的代码行数比汇编少20倍。...简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。而我们在OOP中的那么多的设计模式,其实就是在OOP的多态性的约束规则下,对这些函数指针的调用模式的总结。...而实际上,编程的本质就是次化分解与复合的过程。通过这样的过程,创造一个美妙的逻辑之塔世界。 我们经常说一些代码片段是优雅的或美观的,实际上意味着它们更容易被人类有限的思维所处理。...举例来说,下面代码中的print变量就是一个函数(没有函数名),可以作为另一个函数的参数: >>> val print = fun(x:Any){println(x)} >>> listOf(1,2,3

1.2K50

如何Fortran中调用Python

my_plugin用于获取ffi对象。def_extern装饰器用于处理C类型,指针等。.../test hello world 以上演示了如何使用CFFI从Fortran中调用Python程序,而不需要写任何C程序。 FAQ 必须将所有Python代码写入header字符串吗 不需要这样。...CFFI的ffi对象转换指针ptr为给定形状的numpy数组。...结论 上面描述了如何传递Fortran数据给Python函数,然后再获取计算输出。为了解决频繁更改接口的问题,我们将fortran数据放到了Python模块的字典中。...通过调用给定的名称来获取数据,并且将计算结果也存储到相同的字段中,然后,Fortran代码通过索引字典中正确的关键词来获取结果。Cython中使用了类似的架构,但CFFI更为方便。

5.9K40
  • 【C++进阶】多态的理解

    虚函数与静态成员函数 静态成员函数没有this指针使用类型::成员函数的调用方式无法访问虚函数表,所以静态成员函数无法放进虚函数表,即静态成员函数不能设置成虚函数。...结论 析构函数建议设置成虚函数,因为有时可能利用多态方式通过基类指针调用子类析构        数,尤其是父类的析构函数强力建议设置为虚函数,这样动态释放父类指针所指的子类      对象时,能够达到析构的多态...重载,重定义(隐藏)与重写 重载:在同一作用域,函数名相同,返回值可以不同,参数列表必须不同; 重定义(隐藏):在不同的作用域,一个在基类,一个在派生类,只要函数名相同就构成重定义; 重写:1.在不同的作用域...打印虚表 因为虚表指针一般存在对象的前4个字节(64位则为前8个字节),我们可以通过强制类型转换拿到这个虚表指针。...b.如果派生类重写了基类中某个虚函数,用派生类自己的虚函数覆盖虚表中基类的虚                       数;                   c.派生类自己新增加的虚函数按其在派生类中的声明次序增加到派生类虚表的最后

    11610

    【C++入门篇】保姆级教程篇【中】

    面向机器的语言被广泛称之为“低级语言”,是为了解决面向机器的语言存在的问题,巨佬们又创建了面向过程的语言,也被称为“高级语言”,面向过程的语言不在关注机器本身的一些操作,转而关注如何一步步解决具体的问题的过程...与面向机器语言相比,面向过程的语言就是质的飞跃了,减轻了程序员的大量负担,提升程序员的工作效率促进软件行业的快速发展,这阶段发展的语言COBOL、FORTRAN、C语言等语言。...2)this指针的特性 通过前面的例子我们可以总结出this指针的一些特性: 1、this指针只能在 类内 的 非静态函数 中存在与使用。...答:编译器在生成程序时加入了获取对象首地址的相关代码。编译器有并把获取的首地址存放在了 寄存器 中。成员函数的其它参数都是存放在栈中。而this指针参数则是存放在寄存器中。...析构函数的特点: 1、函数名与类名相同,并且需要再函数名前加上‘~’符号表示析构。 2、没参数没返回值。 3、没有重载。

    6810

    fortran中的数组

    注意,Fortran的字符集不包括中括号[],因此与c语言的风格不同,Fortran对数组分量的操作全都是使用小括号()的。...获取动态数组需要的尺寸 allocate(a(len)) ! 为动态数组分配内存 !...指针 Fortran实际上还有指针pointer,与c语言的指针相比感觉非常鸡肋:1. 我们没有用Fortran建立链表之类的动态需求,动态数组完全够用。2....语法比c语言更繁琐而且更弱,需要target形容的变量才能被指针指向,也没有*p这种运算。3. 各种Fortran编译器对于指针的实现可能有差异或麻烦,我们倾向于完全避免使用指针。...Fortran指针pointer需要配套target使用,target表明变量可以被指针指向,pointer表明这个变量是指针

    51610

    Chatgpt问答之WRF-并行计算

    4、C语言中的指针fortran语言中的指针有什么区别? • 内存模型不同:C语言的内存模型是连续的字节地址空间,而Fortran语言则支持非连续的内存分配。...• 指针的声明方式不同:在C语言中,指针的声明使用*,如int *p,而在Fortran中,指针的声明使用pointer关键字,如real, pointer :: p。...而在Fortran中,指针不能被直接解引用,必须使用关键字target和associate来实现类似的功能。...也即C语言指针存储的是变量的地址(输出指针结果为地址),fortran语言中指针可视为变量的别名(输出指针结果为变量值)。若想输出地址则需要使用loc()函数。...而在Fortran中,指针的生命周期可以跨越多个子程序,因为它们可以被作为实参传递,并且可以被保存在堆栈或堆上的内存中。因此,在使用Fortran指针时需要更加注意内存管理的问题。

    58730

    【C++】类与对象【定义、访问限定符、this指针

    今日更新了类与对象的定义、访问限定符、this指针的内容 欢迎大家关注点赞收藏⭐️留言 面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题...类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名:: 一般情况下,我们建议采用第二种形式。 成员变量命名规则的建议: 如上图,这样命名会出现区分不了的问题。...类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。...this指针 对于上述类,有这样的一个问题: Date类中有 Init 与 Print 两个成员函数,函数体中没有关于不同对象的区分,那当d1调用 Init 数时,该函数是如何知道应该设置d1对象?...只能在“成员函数”的内部使用 this指针本质上是“成员函数”的形参,当对象调用成员函数时,将对象地址作为实参传递给 this形参。所以对象中不存储this指针

    14510

    函数模板 ## 函数模板

    ,可使用模板。...这个过程称为重载解析(overloading resolution)。过程:创建候选函数列表。其中包含与被调⽤函数的名称相同的函数和模板函数。使⽤候选函数列表创建可⾏函数列表。...完全匹配和最佳匹配 Type(argument-list)意味着⽤作实参的函数名与⽤作形 参的函数指针只要返回类型和参数列表相同,就是匹配的。 !...- 指向⾮const数据的指针和引⽤优先与⾮const指针和引⽤参数匹配。 - const和⾮const之 间的区别只适⽤于指针和引⽤指向的数据。...- ⼀个完全匹配优于另⼀个的另⼀种情况是,其中⼀个是⾮模板 数,⽽另⼀个不是。在这种情况下,⾮模板函数将优先于模板函数(包 括显式具体化)。

    2.2K10

    c和fortran混编

    一个简单的解决办法——使用g77链接main.o和foo.o。...还有些程序会使用动态链接库.so,那么应该使用nm的-D选项查看这些动态符号。...objdum的功能比nm更强大) 有很多东西很基础我还罗嗦了很久,让大家见笑了:) 还有一件事,那就是我这里链接采用了gcc -l的方式,更基本的是ld的方式,只要你知道链接哪些库,链接的顺序如何即可...像上面的例子最后的链接的使用g77最好,因为我的例子很简单,而你的有可能很复杂。 还想起来一件事,关于网上使用的例子有__stdcall的,那都是关于win api的。...这是编译器(f77)的一个命名规则,没有为什么,它就是把你在fortran中的函数名字全转换成小写,然后在最后加一个下划线。我昨天搜了很多版本,头昏脑胀,怎么调都说找不到,也没有想到要自己看看。

    1.6K41

    RTOS函数命名规则

    驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。...事实上,很多程序设计者在实际命名时会将驼峰命名法和帕斯卡结合使用,例如变量名采用驼峰命名法,而函数采用帕斯卡命名法。...e :枚举变量 p :指针变量 类似(uint16_t *)变量前缀为pus。...prv :static函数 v: void函数 函数名数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的 数则会加一个 prv(private)的前缀。...中定义; xQueueReceive():前缀x表示返回BaseType_t类型数据,Queue表示该函数在queue.c中定义; pvTimerGetTimerID():前缀pv表示返回void类型指针

    1.9K20

    Go语言核心编程(2)——函数

    多个相邻的同类型的参数可以使用简写模式 不支持默认参数 不支持函数重载 实参与形参 Go 函数实参到形参的传递永远是值拷贝,即使是参数是指针也是值拷贝,传递给形参的是这个指针变量的副本, 二者指向同一地址...函数签名 函数签名也就是函数类型,一个函数的签名就是指函数定义首行去掉函数名、参数名和{ 两个函数类型相同的条件是:拥有相同的形参列表和返回值列表(列表元素的次序、个数和类型都相同),形参名可以不同...匿名函数 匿名函数可以看作函数字面量 , 所有直接使用 数类型变量的地方都可以由匿名函数代替。医名函数 不定参数 不定参数类型必须一致 多个参数时,不定参数必须是最后一个。

    75120

    C++11 lambda

    functor(5); volatile int y2 = lambda(5); return 0; } 按值捕获lambda的工作方式与标准functor几乎相同:它们都分配存储捕获值的对象,并获取指向该对象的隐藏函数参数...,这表明引用的行为是在内部是使用指针实现的。...总结主要区别: 1、子和lambda总是传递一个this指针,而普通函数自然不是。这会消耗一个额外的寄存器和8个字节的堆栈空间。 Lambda“构造函数”被内联到创建Lambda的函数中。...对于普通函数而言,函数只是用来表达一个运算的过程,它无法记住运算过程中的一些状态数据。函数就像一个漏斗,数据可以从这个漏洞中流过,发生某些变化,但是这个漏斗什么都不会留下。...这时,函数就需要记住上一次的执行状态数据以备下一次函数执行使用。 函数对象的出现就是用来弥补函数的这个缺陷的。利用函数对象自身的成员变量,函数可以记住在每次执行过程中的状态数据,找回失去的记忆。

    1.1K30

    多态与虚(函数)表

    前言 续接上回(继承),我们了解了继承是如何通过虚基表,来解决派生类和父类有相同的成员变量的情况,但是类和对象中可不只有成员变量,如果成员函数也有同名,更或者如果我们想在访问不同情况(类)但是相同函数名时...就如:我们去买票,根据不同年龄给出不一样的优惠,他们都是游客的类,不同的年龄由游客派生出不同年龄游客的类,但是我们只有一个“卖票”这一个接口,那如何实现呢?...观察下图的蓝色箭头我们看到,p是指向johnson对象时,p->BuyTicket在johson的虚表中找到虚Student::BuyTicket。 3....那么我们如何查看d的虚表呢?...下面我们使用代码打印 出虚表中的函数 typedef void(*VFPTR) (); void PrintVTable(VFPTR vTable[]) { // 依次取虚表中的虚函数指针打印并调用。

    57020

    编程(1)-泛编程是如何实现的

    编程就是把函数组合起来形成一个完整的程序。可想而知,函数组合的过程可以是曲折的,形成的程序可以是复杂的。那么泛编程又是如何保证一个复杂的函数组合程序是正确无误的呢?...因为泛程序是由纯函数组成,纯函数是”可等量替换的“,具备行为不可变化特性,所以能保证泛程序的正确性。    ...在Scala语言中 “+” 是个函数名称,我们可以确定这个“+”函数是个纯函数,因为我们可以放心的用结果2来“等量替代” 表达式1+1。...从以上的例子中我们还可以得出结论:泛程序能用正常的逻辑来理解,它的作用是可预测的,不容易出现粗心错误,可以放心使用。...泛编程要求尽量使用”不可改变的“(Immutable)数据结构来保证程序的纯洁性。泛编程就好像是使用”不可改变的“数据结构过程的挣扎,起码对我来说是这样的。

    1.6K80

    FreeRTOS(十一):其他任务 API 函数

    1、函数 uxTaskPriorityGet() 此函数用来获取指定任务的优先级,要使用此函数的话宏 INCLUDE_uxTaskPriorityGet 应 该定义为 1。...标签的功能由用户自行决定,此函数就是用来获取这个标签值的,FreeRTOS 系统内核 是不会使用到这个标签的。...6、函数 xTaskGetCurrentTaskHandle() 此函数用于获取当前任务的任务句柄,其实获取到的就是任务控制块,在前面讲解任务创 建 数 的 时 候 说 过 任 务 句 柄 就 是...19、函数 SetThreadLocalStoragePointer() 此函数用于设置线程本地存储指针的值,每个任务都有它自己的指针数组来作为线程本地存储,使用这些线程本地存储可以用来在任务控制块中存储一些应用信息...20、函数 GetThreadLocalStoragePointer() 此函数用于获取线程本地存储指针的值, 如 果 要 使 用 此 数 的 话 宏configNUM_THREAD_LOCAL_STORAGE_POINTERS

    2.2K30

    类与对象竟是这样的(上集)

    一.面向过程和面向对象初步认识 在我们的编程中,C语言是面向过程的,关注的是过程,分析出求解问题的基本步骤,通过函数调用来解决问题。...那么如何计算类的大小呢?...那么 如何解决呢? 猜测二:代码只保存一份,在对象中保存存放对象的地址 猜测三:只存放成员变量,在代码公共部分存放成员函数 那么咱们的类到底是如何存储的呢?...数时,该函数是如何知道应该设置d1对象,而不是设置d2对象呢?...只能在“成员函数”的内部使用 3). this指针本质上是“成员函数”的形参,当对象调用成员函数时,将对象地址作为实参传递给 this形参。所以对象中不存储this指针

    6510

    《Kotin 极简教程》第8章 函数式编程(FP)(1)第8章 函数式编程(FP)《Kotlin极简教程》正式上架:

    "函数式编程", 又称泛编程, 是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它的基础是 λ 演算(lambda calculus)。...第一个 FORTRAN (FORmula TRANslating 的缩写)编译器 1957.4 正式发行。FORTRAN 程序的代码行数比汇编少20倍。...简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。而我们在OOP中的那么多的设计模式,其实就是在OOP的多态性的约束规则下,对这些函数指针的调用模式的总结。...使用递归要注意的有两点: (1)递归就是在过程或函数里面调用自身; (2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口。 下面我们举例说明。...这样就出现了一个问题 —— 如何在Lambda Calculus中实现递归函数,即匿名递归函数。Haskell B.

    1.4K20

    【C++】初识面向对象:类与对象详解

    类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名:: 一般情况下,更加期望采用第二种方式。...2.3 成员变量命令规则由于在使用过程中,难免会遇到成员变量与函数参数名称相同导致混淆。比如:这里如何去区分year属于成员变量还是函数参数呢?...对于计算机使用者而言,不用关心内部核心部件,比如主板上线路是如何布局的,CPU内部是如何设计的等,用户只需要知道,怎么开机、怎么通过键盘和鼠标与计算机进行交互即可。...7.2 this指针的特性this指针的类型:类类型*const ,既成员函数中,不能给this赋值this指针不能显示在实参和形参的位置,只能在成员函数的内部使用this指针本质上是成员函数的形参,当对象调用成员函数时...5.如何测试某台机器是大端还是小端程序创建一个整数变量(num),然后通过将其地址强制转换为字符指针,检查存储在该地址的第一个字节的值,从而确定字节序。

    9100
    领券