色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【C語言經(jīng)典面試題】源碼實(shí)現(xiàn)標(biāo)準(zhǔn)庫函數(shù)memcpy

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-09-30 17:12 ? 次閱讀

C語言經(jīng)典面試題】源碼實(shí)現(xiàn)標(biāo)準(zhǔn)庫函數(shù)memcpy

你有面試中,要求寫memcpy的源碼實(shí)現(xiàn)嗎?本文給出一個(gè)參考寫法!

1 需求說明2 源碼實(shí)現(xiàn)2.1 函數(shù)申明2.2 功能實(shí)現(xiàn)3 源碼測試4 小小總結(jié)

1 需求說明

題目大意如下:

請(qǐng)參考標(biāo)準(zhǔn)C庫對(duì)memcpy的申明定義,使用C語言的語法寫出其實(shí)現(xiàn)源碼。

2 源碼實(shí)現(xiàn)

2.1 函數(shù)申明

通過查看man幫助,我們可以知道m(xù)emcpy函數(shù)的功能及其簡要申明。

NAME
       memcpy - copy memory area
?
SYNOPSIS
       #include 
?
       void *memcpy(void *dest, const void *src, size_t n);
?
DESCRIPTION
       The memcpy() function copies n bytes from memory area src to memory area dest.  The memory areas must not overlap.  Use memmove(3) if the memory
       areas do overlap.
?
RETURN VALUE
       The memcpy() function returns a pointer to dest.

2.2 功能實(shí)現(xiàn)

以下是我的一個(gè)簡單實(shí)現(xiàn)源碼,僅供參考:

char *my_memcopy(char* dest, const char *src, size_t len)
{
    assert(dest && src && (len > 0));

if (dest == src) {
;
} else {
        char *p = dest;
size_t i;
        for (i = 0; i < len; i++) {
            *p++ = *src++;
}
    } 
?
    return dest;
}

3 源碼測試

簡單的測試代碼如下:

#include 
#include 
?
int main(void)
{
    char buf[30] = "123456789abcdef";

printf("before-memcpy-buf: %s
", buf);
    my_memcopy(buf + 5, buf, 3);
printf("after-memcpy-buf: %s
", buf);
?
printf("before-memcpy-buf: %s
", buf);
    my_memcopy(buf + 5, buf, 9);
printf("after-memcpy-buf: %s
", buf);
?
return 0;
}
?

簡單寫了build.sh腳本做編譯測試:

#! /bin/bash -e
?
CFLAGS="-Wall -Werror"
cmd="gcc *.c $CFLAGS -o test"
?
if [ "$1" = "clean" ]; then
    rm -rf test
    echo "Clean build done !"
    exit 0
fi
?
echo $cmd && $cmd

執(zhí)行編譯后,運(yùn)行小程序的結(jié)果:

c_c++/memmove$ ./test 
before-memcpy-buf: 123451239abcdef
after-memcpy-buf: 123451239abcdef
?
before-memcpy-buf: 12345123451239f
after-memcpy-buf: 12345123451234f
?

從運(yùn)行結(jié)果上看,基本滿足了題目要求,有心的讀者可以進(jìn)一步測試其他測試用例。

4 小小總結(jié)

memcpy的源碼實(shí)現(xiàn),核心就是內(nèi)存拷貝分,盡管它和memmove的接口原型是一樣的,但是它們實(shí)現(xiàn)的功能還是有本質(zhì)區(qū)別的,你都get到了嗎?

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137438
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    652

    瀏覽量

    29370
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62882
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言進(jìn)階】面試題:請(qǐng)使用宏定義實(shí)現(xiàn)字節(jié)對(duì)齊

    C語言進(jìn)階】面試題:請(qǐng)使用宏定義實(shí)現(xiàn)字節(jié)對(duì)齊
    的頭像 發(fā)表于 07-11 09:21 ?2852次閱讀
    【<b class='flag-5'>C</b><b class='flag-5'>語言</b>進(jìn)階】<b class='flag-5'>面試題</b>:請(qǐng)使用宏定義<b class='flag-5'>實(shí)現(xiàn)</b>字節(jié)對(duì)齊

    經(jīng)典面試題】請(qǐng)使用C語言編程實(shí)現(xiàn)對(duì)IPV4地址的合法性判斷

    經(jīng)典面試題】請(qǐng)使用C語言編程實(shí)現(xiàn)對(duì)IPV4地址的合法性判斷
    的頭像 發(fā)表于 05-16 15:23 ?1822次閱讀

    java經(jīng)典面試題深度解析

    回答面試題Int 與Integer的區(qū)別第三節(jié) 以數(shù)據(jù)結(jié)構(gòu)挖掘集合面試考點(diǎn)第四節(jié) 經(jīng)典面試題重載與重寫第五節(jié) 如何回答面試官提問Java的接
    發(fā)表于 06-20 15:16

    C語言 經(jīng)典面試題

    C語言經(jīng)典面試題目.doc
    發(fā)表于 08-05 22:03

    c語言面試題,c++面試題下載

    c語言面試題,c++面試題1. static有什么用途?(請(qǐng)至少說明兩種) 1) 限制變量的作用域 2) 設(shè)置變量的存儲(chǔ)域 2.&
    發(fā)表于 10-22 11:19 ?5次下載

    c語言面試題

    c語言面試題集(單片機(jī))C language problem(20151125084232)
    發(fā)表于 12-18 14:05 ?9次下載

    c語言面試題

    c語言面試題
    發(fā)表于 11-05 16:48 ?0次下載

    C語言經(jīng)典面試題

    面試題
    發(fā)表于 12-20 22:41 ?0次下載

    C語言經(jīng)典面試題

    C語言 經(jīng)典面試題
    發(fā)表于 01-05 11:27 ?0次下載

    經(jīng)典硬件面試題精選及解答

    經(jīng)典硬件面試題精選及解答
    發(fā)表于 11-29 18:02 ?0次下載

    C語言經(jīng)典面試題函數(shù)指針數(shù)組的定義是怎么樣的?

    經(jīng)典面試題,有必要了解下!
    的頭像 發(fā)表于 10-05 16:35 ?2314次閱讀
    【<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>經(jīng)典</b><b class='flag-5'>面試題</b>】<b class='flag-5'>函數(shù)</b>指針數(shù)組的定義是怎么樣的?

    C語言經(jīng)典面試題】static關(guān)鍵字的作用有哪些?

    經(jīng)典面試題,有必要了解下!
    的頭像 發(fā)表于 10-02 12:00 ?2705次閱讀
    【<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>經(jīng)典</b><b class='flag-5'>面試題</b>】static關(guān)鍵字的作用有哪些?

    C語言經(jīng)典面試題】求數(shù)組元素的個(gè)數(shù)的宏定義

    經(jīng)典面試題,有必要了解下!
    的頭像 發(fā)表于 10-02 11:58 ?3593次閱讀
    【<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>經(jīng)典</b><b class='flag-5'>面試題</b>】求數(shù)組元素的個(gè)數(shù)的宏定義

    分享10道有趣的嵌入式C語言面試題及答案

    10個(gè)C語言面試題,涉及指針、進(jìn)程、運(yùn)算、結(jié)構(gòu)體、函數(shù)、內(nèi)存,看看你能做出幾個(gè)!
    的頭像 發(fā)表于 05-09 10:54 ?2829次閱讀

    c語言面試題集(完整版)

    電子發(fā)燒友網(wǎng)站提供《c語言面試題集(完整版).pdf》資料免費(fèi)下載
    發(fā)表于 10-20 11:20 ?2次下載
    <b class='flag-5'>c</b><b class='flag-5'>語言</b><b class='flag-5'>面試題</b>集(完整版)
    主站蜘蛛池模板: 亚洲精品免播放器在线观看 | 免费A级毛片无码鲁大师 | 老外的好大c的我好爽 | 国产精品v欧美精品v日韩 | 久久精品中文字幕有码日本 | 中文字幕偷乱免费视频在线 | 久久亚洲伊人 | 亚洲人成无码久久久AAA片 | 日韩精品特黄毛片免费看 | 成年女人色毛片免费 | 午夜福利影院私人爽爽 | 抽插H浊水H嫩B父皇 虫族bl文全肉高h | 影音先锋亚洲AV少妇熟女 | 新妺妺窝人体色WWW 新金梅瓶玉蒲团性奴3 | 好硬好湿好爽再深一点视频 | 亚洲成A人片在线观看中文不卡 | 冰山高冷受被c到哭np双性 | 亚洲精品一区国产欧美 | 网友自拍成人在线视频 | 国产品无码一区二区三区在线 | 国产免费久久精品国产传媒 | 最近中文字幕在线中文视频 | 无码日韩人妻精品久久蜜桃入口 | SM高H黄暴NP辣H调教性奴 | 被吊起玩弄的女性奴 | 秋霞成人午夜鲁丝一区二区三区 | 秋霞电影在线观看午夜伦 | 99re28久久热在线观看 | 亚洲熟女丰满多毛XXXXX | 少妇精品无码一区二区三区 | 小黄文污到你湿 | 在线观看国产人视频免费中国 | 久久久久久久久久毛片精品美女 | 精选国产AV精选一区二区三区 | 奇米精品一区二区三区在线观看 | 亚洲欭美日韩颜射在线二 | 少妇性饥渴BBBBBBBBB | 欧美精品专区免费观看 | 91精品一区二区三区在线观看 | 国产精品人妻无码久久久奥特曼 | 乌克兰10一12x video |