May 18th Monday (五月 十八日 月曜日)

本文介绍了三个使用C语言编写的程序示例,分别展示了如何获取程序的符号地址信息、如何访问命名空间内的变量以及如何实现弱引用函数调用。这些示例有助于理解C语言中符号地址的概念及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  There are three interesing C sources.

// specsym.c
#include <stdio.h>

extern char __executable_start[];
extern char etext[], _etext[], __etext[];
extern char edata[], _edata[];
extern char end[], _end[];

int main() {
  printf("Executable Start %x/n", __executable_start);
  printf("Text End %x %x %x/n", etext, _etext, __etext);
  printf("Data End %x %x/n", edata, _edata);
  printf("Executable End %x %x/n", end, _end);

  return 0;
}

//ManName.cpp
#include <stdio.h>

namespace myname {
  int var = 42;
}

extern "C" double _ZN6myname3varE;

int main() {
  printf("%d/n", _ZN6myname3varE);

  return 0;
}

//weakref.c
__attribute__ ((weakref)) void foo();

int main() {
  if (foo) foo();

  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值