[解決済み] CLOCKS_PER_SEC in C language found the time.h library
2022-02-16 18:55:10
質問
CLOCKS_PER_SECはシステムによって異なるのでしょうか、それともOSによって一定なのでしょうか、それとも特定のシステムのプロセッサに依存するのでしょうか? また、私のコードの出力を説明するのを助けてください...それは正しいですか?
#include<stdio.h>
#include<time.h>
int main()
{
int a;
long int b;
clock_t start, end;
start = clock();
//Code for which the time is to be calculated
for(a=0;;a++)
{
if(a<0)
{
break;
}
}
printf("int : %u\n",a);
for(b=0;;b++)
{
if(b<0)
{
break;
}
}
printf("long int :%u\n",b);
//code is over
end = clock();
//CLOCKS_PER_SECOND : the number of clock ticks per second
printf("Starting Time:%u\n",start);
printf("Ending Time:%u\n",end);
printf("CLOCKS_PER_SEC:%u",CLOCKS_PER_SEC);
printf("\nNumber of clock ticks:%u",(end - start));
printf("\nTotal time:%u",(double)(end - start)/CLOCKS_PER_SEC);
return 0;
}
を出力します。
int : 2147483648
long int :2147483648
Starting Time:0
Ending Time:9073
CLOCKS_PER_SEC:1000
Number of clock ticks:9073
Total time:1099511628
Process returned 0 (0x0) execution time : 15.653 s
Press any key to continue.
解決方法は?
<ブロッククオートCLOCKS_PER_SECはシステムによって異なるのでしょうか、それともあるOSでは一定なのでしょうか、それともその特定のシステムのプロセッサに依存するのでしょうか?
CLOCKS_PER_SEC
は、最終的にはOSではなく、コンパイラとその標準ライブラリの実装によって決定されます。 マシンやOS、その他の要因が、コンパイラが提供するものに寄与していますが。
私のコードの出力を説明するのを手伝ってください。
いいえ。
printf("\nTotal time:%u",(double)(end - start)/CLOCKS_PER_SEC);
が使っているのは
"%u"
を印刷するために
double
.
フェリックス・パルメン
CLOCKS_PER_SEC
は必ずしも
unsigned
.
clock_t
は必ずしも
int
.
参照
間違った
printf()
の指定子は、出力に情報を与えません。
ヒント:すべてのコンパイラの警告を有効にします。
ワイド型にキャストし、一致する印刷指定子を使用します。
clock_t start
// printf("Starting Time:%u\n",start);
printf("Starting Time:%g\n", (double) start);
// printf("CLOCKS_PER_SEC:%u",CLOCKS_PER_SEC);
printf("CLOCKS_PER_SEC:%g\n", (double) CLOCKS_PER_SEC);
// printf("\nTotal time:%u",(double)(end - start)/CLOCKS_PER_SEC);
printf("Total time:%g\n",(double)(end - start)/CLOCKS_PER_SEC);
あるいは、次のように考えてもよいでしょう。
long double
.
long double t = (long double)(end - start)/CLOCKS_PER_SEC;
printf("Total time:%Lg\n", t);
関連
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み】初期化がキャストなしで整数からポインタを作成 - C言語
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み】C言語のフォーマット文字列でデータ引数が使用されない [重複]。
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?