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

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

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

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

C語言拆解循環(huán) 以空間換時間

麥辣雞腿堡 ? 來源:軒哥談芯 ? 作者:Debug ? 2023-11-20 18:05 ? 次閱讀

拆解循環(huán)-以空間換時間

在編寫循環(huán)處理程序的時候要充分利用CPU的指令緩存,要充分分解小的循環(huán)。特別是當循環(huán)體本身很小的時候,分解循環(huán)可以提高性能。

這里要注意,很多編譯器并不能自動分解循環(huán)。不好的代碼:

// 3D轉(zhuǎn)化:把矢量 V 和 4x4 矩陣 M 相乘
for (i = 0;i < 4;i ++)
{
r[i] = 0for (j = 0;j < 4;j ++)
{
r[i] += M[j][i]*V[j];
}
}

推薦的代碼:

r[0] = M[0][0]*V[0] + M[1][0]*V[1] + M[2][0]*V[2] + M[3][0]*V[3];
r[1] = M[0][1]*V[0] + M[1][1]*V[1] + M[2][1]*V[2] + M[3][1]*V[3];
r[2] = M[0][2]*V[0] + M[1][2]*V[1] + M[2][2]*V[2] + M[3][2]*V[3];
r[3] = M[0][3]*V[0] + M[1][3]*V[1] + M[2][3]*V[2] + M[3][3]*v[3];

02

充分提取循環(huán)中的公共部分

對于一些不需要循環(huán)變量參加運算的任務(wù)可以把它們放到循環(huán)外面,這里的任務(wù)包括表達式、函數(shù)的調(diào)用、指針運算、數(shù)組訪問等,應(yīng)該將沒有必要執(zhí)行多次的操作全部集合在一起,放到一個init的初始化程序中進行。

03

延時函數(shù)中的循環(huán)技巧

通常使用的延時函數(shù)均采用自加的形式:

void delay (void)
{
  unsigned int i;
  for (i=0;i< 1000;i++) ;
}

將其改為自減延時函數(shù):

void delay (void)
{
  unsigned int i;
  for (i=1000;i >0;i--) ;
}

兩個函數(shù)的延時效果相似,但幾乎所有的C編譯對后一種函數(shù)生成的代碼均比前一種代碼少13個字節(jié),因為幾乎所有的MCU均有為0轉(zhuǎn)移的指令,采用后一種方式能夠生成這類指令。在使用while循環(huán)時也一樣,使用自減指令控制循環(huán)會比使用自加指令控制循環(huán)生成的代碼更少13個字母。

但是,在循環(huán)中有通過循環(huán)變量“i”讀寫數(shù)組的指令時,使用預(yù)減循環(huán)有可能使數(shù)組超界,要引起注意。

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

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136692
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3785

    瀏覽量

    81004
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1623

    瀏覽量

    49108
收藏 人收藏

    評論

    相關(guān)推薦

    C語言基礎(chǔ)知識(5)--循環(huán)語句

    C語言基礎(chǔ)知識(5)--循環(huán)語句
    的頭像 發(fā)表于 06-15 10:18 ?2264次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎(chǔ)知識(5)--<b class='flag-5'>循環(huán)</b>語句

    C語言中for循環(huán)的用法和應(yīng)用 C語言中for循環(huán)與while循環(huán)的區(qū)別

    C語言中的循環(huán)結(jié)構(gòu)時,for循環(huán)是最常用的一種。它允許重復(fù)執(zhí)行一段代碼,直到滿足特定條件為止。
    發(fā)表于 08-18 16:33 ?3228次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中for<b class='flag-5'>循環(huán)</b>的用法和應(yīng)用 <b class='flag-5'>C</b><b class='flag-5'>語言</b>中for<b class='flag-5'>循環(huán)</b>與while<b class='flag-5'>循環(huán)</b>的區(qū)別

    C語言循環(huán)結(jié)構(gòu)的使用方法

    詳細介紹了C語言while循環(huán)結(jié)構(gòu)、do-while循環(huán)結(jié)構(gòu)、for循環(huán)結(jié)構(gòu)、循環(huán)退出語句的語法
    發(fā)表于 11-02 11:26 ?1753次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>循環(huán)</b>結(jié)構(gòu)的使用方法

    C語言for循環(huán)的用法和注意事項

    C 語言是一種廣泛使用的編程語言,它具有簡潔、高效、靈活的特點。C 語言中有很多控制流程的語句,其中 for
    的頭像 發(fā)表于 11-20 18:27 ?2373次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>for<b class='flag-5'>循環(huán)</b>的用法和注意事項

    C語言入門教程-if語句和while循環(huán)

    if語句和while循環(huán) C語言中,if語句和while循環(huán)都會用到布爾表達式。下面是一個使用if語句的簡單例子: #include
    發(fā)表于 07-29 10:48 ?8549次閱讀

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句
    發(fā)表于 01-14 15:32 ?5次下載

    C++語言基礎(chǔ)講解視頻while循環(huán)語句

    C++語言基礎(chǔ)講解視頻while循環(huán)語句,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-14 15:31 ?3次下載

    C語言教程之循環(huán)顯示隨機數(shù)問題

    C語言教程之循環(huán)顯示隨機數(shù)問題,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 15:03 ?0次下載

    多變循環(huán)彩燈C語言+Proteus軟件仿真參考程序

    此軟件提供多變循環(huán)彩燈C語言+proteus軟件仿真參考程序。
    發(fā)表于 08-30 16:23 ?21次下載
    多變<b class='flag-5'>循環(huán)</b>彩燈<b class='flag-5'>C</b><b class='flag-5'>語言</b>+Proteus軟件仿真參考程序

    C語言教程之使用循環(huán)結(jié)構(gòu)設(shè)計C語言程序的資料說明

    本文檔詳細介紹的是C語言教程之使用循環(huán)結(jié)構(gòu)設(shè)計C語言程序的資料說明主要內(nèi)容包括了:1.while循環(huán)
    發(fā)表于 02-15 11:27 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>教程之使用<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)設(shè)計<b class='flag-5'>C</b><b class='flag-5'>語言</b>程序的資料說明

    C語言的3種循環(huán)結(jié)構(gòu)分析

    C語言循環(huán)結(jié)構(gòu)有for循環(huán)、while循環(huán)、do循環(huán)和goto
    的頭像 發(fā)表于 05-20 13:43 ?1.1w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的3種<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)分析

    C語言中的數(shù)組空間動態(tài)開辟

    C語言中的數(shù)組空間動態(tài)開辟 在C語言中,必不可少的需要使用到數(shù)組,通常為了動態(tài)的開辟數(shù)組空間,可
    的頭像 發(fā)表于 02-10 12:42 ?2149次閱讀

    C語言循環(huán)與分支-2

    而在c語言中我們經(jīng)常會需要重復(fù)地進行一些指令,但是不斷的編輯重復(fù)代碼不僅很繁瑣,還容易出現(xiàn)bug,因此循環(huán)語句的使用就非常有必要。今天要介紹的就是循環(huán)語句相關(guān)的知識。
    的頭像 發(fā)表于 02-21 15:35 ?698次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>循環(huán)</b>與分支-2

    c語言在while中嵌套if循環(huán)

    C語言是一種廣泛使用的面向過程編程語言,它提供了許多控制結(jié)構(gòu)來幫助程序員實現(xiàn)復(fù)雜的邏輯和流程控制。其中,while循環(huán)和if語句是非常常見和重要的控制結(jié)構(gòu)。本文將詳細介紹
    的頭像 發(fā)表于 11-22 10:09 ?6104次閱讀

    深入理解C語言循環(huán)語句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡化代碼,循環(huán)語句應(yīng)運而生。C語言作為一門經(jīng)典的編程語言,提供了多種循環(huán)控制結(jié)構(gòu)
    的頭像 發(fā)表于 12-07 01:11 ?106次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>循環(huán)</b>語句的應(yīng)用與優(yōu)化技巧
    主站蜘蛛池模板: 亚洲天堂2017无码| 国产产一区二区三区久久毛片国语| 国语对白嫖老妇胖老太| 入禽太深免费高清在线观看5| 8050午夜二级一片| 果冻传媒9CM在线观看| 午夜爱情动作片P| 国产精品97久久AV色婷婷| 日韩毛片大全| xxnx动漫| 欧美一区二区视频97色伦| 99精品视频免费在线观看| 蕾丝边娱乐网| 0855午夜福利伦理电影| 久久无码av三级| 伊人伊人影院| 久久er国产免费精品| 一本之道加勒比在线观看| 九色91精品国产网站| 一本道亚洲区免费观看| 久久国产乱子伦精品免费不卡| 一级毛片在线免费视频| 久久妇女高潮几次MBA| 一级毛片两人添下面| 久久99热狠狠色一区二区| 一个人免费视频在线观看高清频道| 九色PORNY丨视频入口| 永久免费无码AV国产网站| 久久中文字幕亚洲精品最新| 中国老女人xxhd69| 另类专区hy777| 99国产精品偷窥熟女精品视频| 农村脱精光一级| 把英语老师强奷到舒服动态图 | ping色堂| 日本漫画之无彩翼漫画| 疯狂小护士| 新影音先锋男人色资源网| 韩国伦理电影在线神马网| 一个人免费完整在线观看影院| 久久综合色悠悠|