女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    7629

    瀏覽量

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

    關(guān)注

    117

    文章

    3819

    瀏覽量

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

    關(guān)注

    1

    文章

    1653

    瀏覽量

    49827
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

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

    C語言基礎(chǔ)知識(5)--循環(huán)語句
    的頭像 發(fā)表于 06-15 10:18 ?2962次閱讀
    <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 ?3812次閱讀
    <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 ?2214次閱讀
    <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 ?3114次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>for<b class='flag-5'>循環(huán)</b>的用法和注意事項

    深入理解C語言C語言循環(huán)控制

    C語言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環(huán)C
    的頭像 發(fā)表于 04-29 18:49 ?695次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b><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 ?8632次閱讀

    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次下載

    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.2w次閱讀
    <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 ?2390次閱讀

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

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

    深入理解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 ?494次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>循環(huán)</b>語句的應(yīng)用與優(yōu)化技巧