[問題] memset和for 初始化資料速度比較

作者: MashiroKinji (MashiroKinji)   2015-02-16 05:27:49
先貼上代碼
使用編譯器是Visual C++
電腦32位元
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <time.h>
#define len 1000
#define times 10000
#define type long long
type c[len][len];
int main()
{
int timer[2];
timer[0] = clock();
int i = times, j = times;
while (i
作者: dritchie (卍~邁斯納效應~卍)   2015-02-16 08:01:00
long long可以視為兩個int綁在同一個變數上
作者: wenyonba (射後不理很XX啊!!!!)   2015-02-16 08:02:00
我怎麼覺得你第二個while應該會永遠跑不完...
作者: dritchie (卍~邁斯納效應~卍)   2015-02-16 08:02:00
所以long long=0其實內部是兩次assignment
作者: wenyonba (射後不理很XX啊!!!!)   2015-02-16 08:03:00
喔喔,你的 for 裡面又 define 了 j,sorry
作者: dritchie (卍~邁斯納效應~卍)   2015-02-16 08:04:00
剩下的讀書吧 "程式設計師的自我修養"
作者: wenyonba (射後不理很XX啊!!!!)   2015-02-16 08:05:00
這樣宣告看起來好花啊...
作者: ji2my (hkt)   2015-02-16 11:48:00
define請用大寫
作者: littleshan (我要加入劍道社!)   2015-02-16 14:00:00
1. 你有開最佳化嗎?我用 gcc -O3 結果就和你相反了2. 宣告為 local 很可能會 stack overflow3. 使用memset填非0值很可能造成undefined behavior4. long long 不一定是兩個 int
作者: lintsu (真闇の張鈞法)   2015-02-16 18:10:00
要下最佳化參數在實驗
作者: MashiroKinji (MashiroKinji)   2015-02-16 20:48:00
那麼如果要清0還是建議用memset嗎?
作者: akasan (KITO)   2015-02-17 00:59:00
用 memset, compiler 知道你在幹麻可以翻出更好的東西某些情況下你自己用 for 去清成 0, compiler 也認的出來

Links booklink

Contact Us: admin [ a t ] ucptt.com