日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 滿天芯
[導(dǎo)讀]道哥的第025篇原創(chuàng)一、前言二、最簡單的格式化三、測試1:手動格式化數(shù)字四、測試2:混合格式化字符串和數(shù)字五、sprintf的實現(xiàn)機制六、總結(jié)一、前言在嵌入式項目開發(fā)中,字符串格式化是很常見的操作,我們一般都會使用C庫中的sprintf系列函數(shù)來完成格式化。從功能上來說,這是沒有...


道哥的第 025 篇原創(chuàng)

  • 一、前言

  • 二、最簡單的格式化

  • 三、測試1:手動格式化數(shù)字

  • 四、測試2:混合格式化字符串和數(shù)字

  • 五、sprintf 的實現(xiàn)機制

  • 六、總結(jié)

一、前言

在嵌入式項目開發(fā)中,字符串格式化是很常見的操作,我們一般都會使用 C 庫中的 sprintf 系列函數(shù)來完成格式化。

從功能上來說,這是沒有問題的,但是在一些時間關(guān)鍵場合,字符串的格式化效率會對整個系統(tǒng)產(chǎn)生顯著的影響。

例如:在一個日志系統(tǒng)中,吞吐率是一個重要的性能指標。每個功能模塊都產(chǎn)生了大量的日志信息,日志系統(tǒng)需要把時間戳添加到每條日志的頭部,此時字符串的格式化效率就比較關(guān)鍵了。

天下武功,唯快不破!

這篇文章就專門來聊一聊把數(shù)字格式化成字符串,可以有什么更好的方法。也許技術(shù)含量不高,但是很實用!

二、最簡單的格式化

#include #include #include
  • #include
    int main(){ char buff[32] = { 0 }; sprintf(buff, "%ld", LONG_MAX); printf("buff = %s \n", buff);}
    其中,LONG_MAX 表示 long 型數(shù)值的最大值。代碼在眨眼功夫之間就執(zhí)行結(jié)束了,但是如果是一百萬、一千萬次呢?

    三、測試1:手動格式化數(shù)字

    1. 獲取系統(tǒng)時間戳函數(shù)

    我的測試環(huán)境是:在 Win10 中通過 VirtualBox,安裝了 Ubuntu16.04 虛擬機,使用系統(tǒng)自帶的 gcc 編譯器。

    為了測試代碼執(zhí)行的耗時,我們寫一個簡單的函數(shù):獲取系統(tǒng)的時間戳,通過計算時間差值來看一下代碼的執(zhí)行速度。

    // 獲取系統(tǒng)時間戳long long getSysTimestamp(){ struct timeval tv; gettimeofday(
  • 本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
    換一批
    延伸閱讀
    關(guān)閉