当前位置: 首页 > 面试题库 >

如何打印功能的地址?

郭元明
2023-03-14
问题内容

gcc使用以下代码编译以下示例-Wall -pedantic

#include <stdio.h>

int main(void)
{
  printf("main: %p\n", main); /* line 5 */
  printf("main: %p\n", (void*) main); /* line 6 */

  return 0;
}

我得到:

main.c:5: warning: format ‘%p’ expects type ‘void *’, but argument 2 has typeint (*)()’
main.c:6: warning: ISO C forbids conversion of function pointer to object pointer type

第5行像第6行一样更改了代码。

在打印函数的地址时,我缺少删除警告的内容吗?


问题答案:

本质上,这是打印函数指针的唯一可移植方式。

size_t i;
int (*ptr_to_main)() = main;
for (i=0; i<sizeof ptr_to_main; i++)
    printf("%.2x", ((unsigned char *)&ptr_to_main)[i]);
putchar('\n');


 类似资料:
  • 问题内容: 我需要在另一个类的此Java应用程序中编写打印功能的帮助。 这些功能与printAll我认为是正确的,而其他功能肯定是错误的。 我将在下面写下此问题所需部分的全部功能。 由于实际上没有看到DictionaryADT令人困惑,因此我将其包含在此处。 问题答案: 如果DictionaryADT是具有所有实际实现的类,则需要调用 我相信您然后在DictionaryADT中有Map,类似 要获

  • 问题内容: 如何强制将Python的打印功能输出到屏幕? 这不是“ 禁用输出缓冲”的重复项-链接的问题正在尝试无缓冲输出,尽管这更通用。对于这个问题,最重要的答案太过强大或牵扯太多(对于这个问题,它们不是很好的答案),这个问题可以由相对新手在Google上找到。 问题答案: 在Python 3上,print可以采用可选参数 在Python 2上,你必须做 打电话后print。默认情况下,print

  • 本文向大家介绍JS打印组合功能,包括了JS打印组合功能的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了JS打印组合功能,功能全面,供大家参考,具体内容如下 1.局部打印--即想打印什么地方就打印什么地方  解决办法:  将不想打印的地方隐藏起来  <style type="text/css" media=print> .noprint{display : none }  分页的时候用 

  • 问题内容: 我最近切换了操作系统,并正在使用较新的Python(2.7)。在旧系统上,我曾经能够即时打印。例如,假设我有一个计算密集的for循环: 然后当代码完成每次迭代时,它将打印 但是,在我当前的系统上,python似乎缓存了stdout,因此终端空白了几分钟,然后输出: 短期内。然后,几分钟后,它将打印: 等等。如何在到达语句后立即进行python打印? 问题答案: 尝试在打印后调用冲洗标准

  • 问题内容: 谁能解释我在python shell中通过“打印”输出变量与当我只写变量名称以输出变量之间的区别吗? 当我用文本执行此操作时,我理解了差异,但理解为int或float-我不知道。 问题答案: 只需输入表达式(例如变量名),实际上就会输出该函数返回的结果表示形式,而将使用该函数将结果转换为字符串。>>> s =“ abc” 打印将产生与直接输入表达式相同的结果:

  • 问题内容: 我试过了 但这会引发语法错误。我也尝试过像这样修补 有什么办法吗? 问题答案: 是python 2.x中的关键字,将其用作属性会引发SyntaxError。您可以通过在文件开头使用来避免这种情况。 注意:您不能简单地使用,因为除非禁用该语句,否则不会调用您修改的print函数。 编辑:您还需要在每个要使用修改后功能的文件中使用它,否则它将被该语句掩盖。