English 中文(简体)
是什么?
原标题:What is __FUNCT__ for?

我正在查看一些PETS,例如代码。

#undef __FUNCT__
#define __FUNCT__ "main"

编号<>main>。

姓名 或者在每项职能(或仅是主要职能)面前,标准C方案拟订公约类似吗?

如果是,为什么这样做?

最佳回答

这似乎很短,或是支持<条码>标准的宏观的C编纂者的工作范围。

问题回答

http://www.mcs.anl.gov/petsc/petsc-tant/src/snes/examples/tutorials/ex3.c.html“rel=“noreferer”>,载于PETSc源代码(>,$-PETSC_DIR}/src/examples/tutorials/ex3.c,第33-40条:

Note that immediately before each routine below, we define the macro __FUNCT__ to be a string containing the routine name. If defined, this macro is used in the PETSc error handlers to provide a complete traceback of routine names. All PETSc library routines use this macro, and users can optionally employ it as well in their application codes. Note that users can get a traceback of PETSc errors regardless of whether they define __FUNCT__ in application codes; this macro merely provides the added traceback detail of the application routine names.

查阅petsc.h,似乎有一批大型汽车通过FUNCT__。 a. 作为职能参数,例如:

#define PetscFree(a)   ((a) ? ((*PetscTrFree)((a),__LINE__,__FUNCT__,__FILE__,__SDIR__) || ((a = 0),0)) : 0)

我的猜测是,PetscTrFree()(etc.)将这些论点用于欺骗/log。

首先,使用<代码>#undef的汇编忽视了以前所有的__FUNCT__的申报,随后又将识别符号宣布为“main”号,并贴在#define __FUNCT__“main”上。

我从个人角度讲,没有人会把这种说法说成是“主人”,如果你想要使用图书馆或某种东西,但不想使用他们所宣称的职能名称,我不知道,为什么你会把这个身份变成一个识别特征,而不是仅仅创造另一个功能,而把你想要的东西称作另一个功能。

无论如何,我不认为这是一个积极的C方案拟订公约,而从有限的法典来看,这并不清楚它究竟是怎样使用,还是为什么使用。





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签