C 语言打桩问题(interpositioning)

《c专家编程》第五章p102写到:c语言中可以通过编写与库函数同名的函数来取代该库函数的行为。而且不仅自己所进行的所有对该库函数的调用将被自己版本的函数调用所取代,而且所有调用该函数的系统调用也将用你的函数取而代之。

原来以为这种函数重名情况,编译器是会报错的,但是居然是直接取而代之,感到好奇,于是实验之。

在windows的codeblock上编写仍然编写同名函数,直接printf,代码如下:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<stdbool.h>

 

unsigned intstrlen(const char * str)

{

    printf("It is my function!\n");

    return 0;

}

 

int main()

{

    const char ch[6] = "abcdef";

    int length = strlen(ch);

    printf("length:%d\n",length);

    return 0;

}

运行之后结果如下:


还真的是这样!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值