jjzjj

c++ - 通常对函数名的非限定查找与对变量名的查找不同吗?

考虑以下代码:#includeinta=5;//1externinta;//2intmain(){cout在非限定名称查找期间,将找到#1,非限定名称查找在找到#1后立即结束。但考虑另一个例子:#includevoidfoo(){cout在那种情况下,voidfoo();的定义将首先被找到。但不合格的名称查找并没有结束。为什么?标准中哪里规定的?总的来说,我感兴趣的是:函数调用的后缀表达式的非限定名称查找何时结束?注意:我知道ADL是什么意思。在这种情况下,ADL生成的声明集是空的。更新:但是如果我们这样写:intfoo(inta){return0;}namespaceA{intfoo

c++ - 为什么函数名 f4 有内部链接,而不是 C 语言链接?

[dcl.link]/4中的第五个例子陈述如下:extern"C"{staticvoidf4();//thenameofthefunctionf4hasinternallinkage(notClanguagelinkage)//andthefunction’stypehasClanguagelinkage.}这是为什么?为什么函数名f4有内部链接,而不是C语言链接?P.S.:我是从语言律师的角度问这个问题的。也就是说,如何从标准中的规范性段落中推导出上面的注释声明? 最佳答案 在同一部分,强调我的:Inalinkage-specif

php - 使用下划线 (_) 作为 PHP 函数名

根据http://php.net/manual/en/functions.user-defined.php,我应该可以使用下划线(_)作为函数名:FunctionnamesfollowthesamerulesasotherlabelsinPHP.Avalidfunctionnamestartswithaletterorunderscore,followedbyanynumberofletters,numbers,orunderscores.Asaregularexpression,itwouldbeexpressedthus:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\

php - 如何调用常量作为函数名?

在PHP中,您可以通过在变量中调用函数名称来调用函数。functionmyfunc(){echo'works';}$func='myfunc';$func();//Prints"works"但是,你不能用常量来做到这一点。define('func','myfunc');func();//Error:function"func"notdefined有一些解决方法,例如:$f=func;$f();//Prints"works"call_user_func(func);//Prints"works"functioncall($f){$f();}call(func);//Prints"work

php - 函数名($param, $line = __LINE__, $file = __FILE__) {};

是否可以让一个函数自动包含行号和调用该函数的文件,就像我在函数中调用__LINE__或__FILE__一样,它将使用函数定义所在的行和文件。但我不想每次都将__LINE__和__FILE__传递给函数。所以如果我将它们设置为默认参数,它们是来自函数定义,还是从哪里调用的? 最佳答案 按照您的建议行事似乎行不通。您可以这样做,但我不确定您为什么要这样做,并且没有更好的方法来实现您想要实现的目标-请参阅Wrikken'sanswer. 关于php-函数名($param,$line=__LIN

java - 如何将类名和函数名自动添加到我的日志中

我正在使用android.util.LogclassFoo{privatevoidboo(){//Thisisthebasiclogofandroid.Log.i("tag","Start");}}我想要打印日志[Foo::boo]Start。我可以在Java中获取类名和函数名吗?那我怎么包装代码呢? 最佳答案 在这里已更新Stringtag="[";tag+=this.getClass().toString();tag+="::";tag+=Thread.currentThread().getStackTrace()[1].get

c++ - 函数名和花括号之间成员变量赋值的名称和原因是什么?

看看这段代码:Size::Size(intiSetWidth,intiSetHeight):iWidth(iSetWidth),iHeight(iSetHeight){}据推测,这意味着同样的事情:Size::Size(intiSetWidth,intiSetHeight){iWidth=iSetWidth;iHeight=iSetHeight;}为什么要使用前者或后者?前者的名字是什么? 最佳答案 不,它们的意思并不完全相同。当一个构造函数被执行时,在进入代码块(花括号之间的代码)之前,它会构造所有对象数据成员。您在初始化程序(冒

c# - 在 C++ 中使用函数名从字符串调用函数

如何从字符串中调用C++函数?与其这样做,不如直接从字符串中调用方法:voidcallfunction(constchar*callthis,int[]params){if(callthis=="callA"){callA();}elseif(callthis=="callB"){callB(params[0],params[1]);}elseif(callthis=="callC"){callC(params[0]);}}在C#中,我们将使用typeof(),然后获取方法信息并从那里调用……我们可以在C++中使用什么? 最佳答案

c++ - 在 C++ 中的函数名前使用符号的含义?

举个例子:inlinestring&GetLabel(){returnm_Label;};其中m_Label是私有(private)类成员变量。按照我的理解,此函数将返回对变量m_Label的引用。在我的整个程序中使用它会有什么影响,只返回值而不是引用会更好吗?谢谢! 最佳答案 &符号不是在函数名之前,而是在返回类型之后。它返回对string的引用。这意味着此函数的调用者可以通过引用修改m_label的值。另一方面,它避免了复制字符串。您可能希望引用和函数是const,如下所示:inlineconststring&GetLabel(

c++ - const 类型限定符紧跟在函数名之后

这个问题在这里已经有了答案:Meaningof'const'lastinafunctiondeclarationofaclass?(12个答案)关闭7年前。在C++中,有时我会看到如下声明:return_typefunction_name(datatypeparameter1,datatypeparameter2)const{/*................*/}在这种情况下,这个const类型限定符究竟做了什么?