Linux编程---给函数取别名

0 Preface/Foreword

1 代码

1.1 源代码

#include <stdio.h>
#include <string.h>


int sum(int a, int b);
int sum_alias(int a, int b) __attribute__ ((alias("sum")));
int main()
{
        int ret = 0;
        ret = sum(5, 5) + sum_alias(5, 5);
        printf("ret is :%d\n", ret);
        return ret;
}
int sum(int a, int b)
{
        return (a+b);
}

函数声明别名注意事项

  • 新函数只是旧函数的别名,调用新函数,实际上是调用旧函数
  • 新函数的参数个数和返回类型必须和旧函数完全一致
  • 新函数声明必须放在旧函数声明或者实现之后 

1.2 运行结果

 

1.3 C程序从源码到可执行文件过程(编译过程)

流程如下

  •  预处理,将源文件翻译成符合编译器语法的文件, gcc -E, 等于工具cpp,生成的文件格式为*.i
  • 编译,将源文件编译成汇编文件*.S. gcc -S,等同于工具cc -S,生成的文件格式为*.S
  • 汇编,将汇编文件转成目标文件*.o,该文件为可重定向文件,relocatable. gcc -c, 等同工具as,生成的文件格式为*.o
  • 链接,将其他目标文件,系统库文件,目标文件生成系统可执行文件, gcc , 等同于工具ld

1.3.1 预处理

 

1.3.2 编译

 

1.3.3 汇编

1.3.4 链接

 

2 使用场景

通过条件编译控制汇编代码块,汇编代码块中包含了函数调用,带该函数未实现,属于预留。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性相关,无关?秩?唯一解(只有零解),无穷解(有非零解)?D=0,D≠0?

目录 线性有关无关 和 唯一解&#xff08;只有零解&#xff09;&#xff0c;无穷解&#xff08;有非零解&#xff09;之间的关系 D0&#xff0c;D≠0&#xff1f; 和 秩 的关系 串起来&#xff1a; 线性相关&#xff0c;无关&#xff1f;秩&#xff1f;唯一解&#xff08;只…

华为认证hcna题库背诵技巧有哪些?hcna和hcia有什么区别?

大家都知道华为认证hcna是有题库供考生刷题备考的&#xff0c;但题库中海量的题目想要在短时间背诵下来可并不是一件容易的事情&#xff0c;这就需要我们掌握一定的技巧才行。华为认证hcna题库背诵技巧有哪些? hcna和hcna这二者又有什么区别呢?今天的文章将为大家进行详细解…

Tomcat高效部署与性能优化

Tomcat高效部署与性能优化 一、引言 Apache Tomcat是一个广泛使用的开源Java Web应用服务器&#xff0c;它轻量级、易扩展&#xff0c;并支持Servlet和JSP规范。然而&#xff0c;随着业务的发展和用户数量的增长&#xff0c;Tomcat的性能和稳定性变得至关重要。本文将介绍如何…

datax入门(datax的安装与简单使用)——01

datax入门&#xff08;datax的安装与简单使用&#xff09;——01 1. 官网2. 工具部署&#xff08;通过下载DataX工具包&#xff09;2.1 下载、解压2.2 配置2.2.1 查看配置模版2.2.2 根据模版配置json2.2.3 启动DataX 3. datax的简单使用3.1 mysql2stream3.2 mysql2mysql3.2.1 拼…

LeetCode 1207.独一无二的数

题目要求 给你一个整数数组 arr&#xff0c;请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的&#xff0c;就返回 true&#xff1b;否则返回 false。示例 1&#xff1a;输入&#xff1a;arr [1,2,2,1,1,3] 输出&#xff1a;true 解释&#xff1a;在该…

PyCharm 2024.1最新变化

PyCharm 2024.1 版本带来了一系列激动人心的新功能和改进&#xff0c;以下是一些主要的更新亮点: Hugging Face 模型和数据集文档预览&#xff1a;在 PyCharm 内部快速获取 Hugging Face 模型或数据集的详细信息&#xff0c;通过鼠标悬停或使用 F1 键打开文档工具窗口来预览。 …

Discourse OpenAI 生成图片

正如一些讨论的&#xff0c;生成图片是比较贵的。 差不多到了 1 元 一张图了。 就 OpenAI 生成了上面 4 张图&#xff0c;费用 0.4 美元。 Discourse OpenAI 生成图片 - Discourse - iSharkFly

PHP 网络通信底层原理分析

大家好&#xff0c;我是码农先森。 引言 我们日常的程序开发大多数都是以业务为主&#xff0c;很少会接触到底层逻辑。对于我们程序员来说&#xff0c;了解程序的底层运行逻辑&#xff0c;更有助于提升我们对程序的理解。我相信大多数的人&#xff0c;每天基本上都是完成业务…

桃园三结义 | 第1集 | 三人一条心,黄土变成金,有你带着俺,大事定能成功啊!| 正所谓择木之禽,得其良木,择主之臣,得遇明主 | 三国演义 | 群雄逐鹿

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;这篇博客是毛毛张结合三国演义原著分享三国演义文学剧本中的经典台词和语句&#xff0c;本篇分享的是《三国演义》第Ⅰ部分《群雄逐鹿》的第1️⃣集《桃…

基于Istio服务网格的熔断限流实现

在微服务架构的宏大图景中&#xff0c;Istio服务网格如同一位精巧的交通指挥官&#xff0c;它不仅确保了服务间通信的顺畅无阻&#xff0c;还通过先进的熔断与限流机制&#xff0c;为系统的稳定性筑起了一道坚固的防线。接下来&#xff0c;让我们一窥Istio如何在不改动服务代码…

详细解释C语言语句分类 并用示例说明

详细解释C语言中的这些语句分类&#xff0c;并为每个分类提供一个示例。 我们录制了一套c语言入门课程&#xff0c;想学的小伙伴点击这里购买 1. 类型说明语句 说明&#xff1a;用于为数据类型定义别名或定义新的数据类型。 使用typedef为已有的数据类型&#xff08;如int&a…

2024 6.17~6.23 周报

一、上周工作 吴恩达的机器学习、实验-回顾之前密集连接部分 二、本周计划 继续机器学习&#xff0c;同时思考实验如何修改&#xff0c;开始整理代码 三、完成情况 3.1 多类特征、多元线性回归的梯度下降、特征缩放、逻辑回归 多类特征&#xff1a; 多元线性回归的梯度下…

AI 开发平台(Coze)搭建《美食推荐官》

前言 本文讲解如何从零开始&#xff0c;使用扣子平台去搭建《美食推荐官》 bot直达&#xff1a;美食推荐官 - 扣子 AI Bot (coze.cn) 欢迎大家体验一下&#xff01;&#xff01; 效果 正文 prompt 美食推荐官的首要任务就是推荐美食&#xff0c;基于这个我们要给他一个基…

[pmayavi][python]mayavi所有whl文件下载地址汇总

Mayavi介绍 Mayavi是一个基于Python的科学数据可视化库&#xff0c;专为三维数据的可视化而设计。它基于VTK&#xff08;Visualization Toolkit&#xff09;库&#xff0c;并提供了丰富的功能和工具&#xff0c;使用户能够创建高质量的三维数据可视化结果。以下是对Mayavi的详…

【Java笔记】Flyway数据库管理工具的基本原理

文章目录 1. 工作流程2. 版本号校验算法3. 锁机制3.1 为什么数据库管理工具需要锁3.2 flyway的锁机制 Reference 最近实习做的几个项目都用到了Flyway来做数据库的版本管理&#xff0c;顺便了解了下基本原理&#xff0c;做个记录。 详细的使用就不写了&#xff0c;网上教程很多…

第一后裔/The First Descendant延迟高的解决方法

第一后裔/The First Descendant是一款备受玩家关注的射击游戏&#xff0c;该作拥有多个角色&#xff0c;并为其设定不同的概念和战斗风格&#xff0c;以及技能点&#xff0c;不仅能让玩家畅快作战&#xff0c;还能通过各种道具&#xff0c;不断强化角色能力值&#xff0c;让其战…

MacBook Pro 入门技巧:从 Windows 转到 macOS 的操作对比

前言 作为一名长期使用 Windows 的用户&#xff0c;刚转到 MacBook Pro 时&#xff0c;可能会发现一些常见操作与 Windows 上的操作略有不同。本文将详细介绍这些操作的对比&#xff0c;帮助你快速适应 macOS 的环境。 1. 基本快捷键对比 1.1 复制和粘贴 在 Windows 中&…

unidbg介绍

1.unicorn介绍 好比是一个CPU&#xff0c;可以模拟执行各种指令 提供了很多编程语言接口&#xff0c;可以操作内存、寄存器等 但它不是一个系统&#xff0c;内存管理、文件管理、系统调用等都需要自己来实现 2.基于unicorn开发的框架 cemu用来学习汇编的工具 AndroidNativeEm…

音视频入门基础:H.264专题(8)——H.264官方文档的描述符

音视频入门基础&#xff1a;H.264专题系列文章&#xff1a; 音视频入门基础&#xff1a;H.264专题&#xff08;1&#xff09;——H.264官方文档下载 音视频入门基础&#xff1a;H.264专题&#xff08;2&#xff09;——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

Generative Model-Based Feature Knowledge Distillation for Action Recognition

标题&#xff1a;基于生成模型的特征知识蒸馏用于动作识别 源文链接&#xff1a;Generative Model-Based Feature Knowledge Distillation for Action Recognition| Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.php/AAAI/artic…