[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#menu(howto/MenuBar)
* howto/C言語 [#l28cc607]
#contents
** 一行メモ [#d6a23889]
- C++, C言語 リファレンス https://ja.cppreference.com/ --...
- 不可解な実行時エラーの例 -- &new{2024-11-13 (水) 15:33...
C90規格(-std=c90)だと、double myfunc( int i, struct hoge...
この関数を前方宣言しないまま使うと、コンパイラは int myf...
のような int型を返す、可変引数の関数として扱われるようで...
C99規格では警告してくれる。
myfunc(int i, ...)を myfunc( int i, struct hoge* g )と...
実行結果は実に不可解な結果を与える。
- A[NI][NJ][NK][NR][NC]のとき、 A[i][j][k][r][c]は、0番...
#comment
** 時間計測 [#wa3a684b]
//-------------------------------------------------------...
#include <sys/time.h>
struct timeval ts, te;
gettimeofday( &ts, NULL );
...
gettimeofday( &te, NULL );
printf( "gettimeofday: %.6lf sec\n",
te.tv_sec - ts.tv_sec + ( te.tv_usec - ts.t...
//usec精度、NTPなどの時刻変更の影響を受けうる
//-------------------------------------------------------...
#include <time.h>
time_t ts, te;
ts = time( NULL );
...
te = time( NULL );
printf( "time: %d sec\n", (int)(te-ts) );
//sec精度
//-------------------------------------------------------...
#include <time.h>
clock_t ts, te;
ts = clock();
...
te = clock();
printf( "clock: %.6lf sec\n", (double)( te - ts ) / ...
//msec以下の精度、I/O待ちなどは含まれない、子プロセスの...
//-------------------------------------------------------...
#include <time.h>
//#define CLKID CLOCK_REALTIME
#define CLKID CLOCK_MONOTONIC_RAW //詳しくはman
struct timespec ts, te, tr;
clock_gettime( CLKID, &ts );
...
clock_gettime( CLKID, &te );
printf( "clock_gettime: %.9lf sec\n",
(double)( te.tv_sec - ts.tv_sec ) + (double)( te.t...
//nsec精度、もっとも正確らしい、
//CLOCK_MONOTONIC_RAW はNTPなどの時刻変更の影響は受けな...
//CLOCK_REALTIME は実時間でありNTPなどの影響を受ける
clock_getres( CLKID, &tr );
printf( " resolution: %lf sec %lf nsec\n",
(double)tr.tv_sec, (double)tr.tv_nsec ); //...
//-------------------------------------------------------...
[cf] python
import time #詳しくはマニュアルhttps://docs.python.org/
ts = time.time()
...
te = time.time()
print( f"time.time: {te-ts:.3f} sec" )
#処理系によってはsec精度まで
#他)
# time.perf_counter(): もっとも正確らしい、clock_gettim...
# time.process_time(): スリープ時間は含まず
# time.monotonic(): OS依存だがclock_gettime(CLOCK_MO...
# time.time(): OS依存だがgettimeofday相当など
# など
//-------------------------------------------------------...
** int, longなどのサイズ [#r86d491f]
| |CENTER:C99言語規格 |CENTER:LP6...
|CENTER: char | 1byte以上、int以下 |CENTER: --...
|CENTER: int | 2byte以上 |CENTER: 4b...
|CENTER: long | 4byte以上、long long以下 |CENTER: 8b...
|CENTER: long long | 8byte以上 |CENTER: --...
|CENTER: ポインタ | -- |CENTER: 8b...
|CENTER: 実装例 | -- |CENTER: Li...
ref. [1] [[C++言語でのint型とlong型とlong long型の違いに...
[2] [[cppreference.com 基本型>https://ja.cppreference.com...
** 整数のオーバーフローについて知っておく事柄 [#t12b139b]
- INT32-C. 符号付き整数演算がオーバーフローを引き起こさな...
- INT02-C. 整数変換のルールを理解する https://www.jpcert....
- Better C - Goと整数 #golang https://qiita.com/sonatard/...
** 多次元の配列とポインタとメモリ領域 [#veeaa7ed]
#ref(多次元配列C言語.jpg,left,100%,nowrap)
終了行:
#menu(howto/MenuBar)
* howto/C言語 [#l28cc607]
#contents
** 一行メモ [#d6a23889]
- C++, C言語 リファレンス https://ja.cppreference.com/ --...
- 不可解な実行時エラーの例 -- &new{2024-11-13 (水) 15:33...
C90規格(-std=c90)だと、double myfunc( int i, struct hoge...
この関数を前方宣言しないまま使うと、コンパイラは int myf...
のような int型を返す、可変引数の関数として扱われるようで...
C99規格では警告してくれる。
myfunc(int i, ...)を myfunc( int i, struct hoge* g )と...
実行結果は実に不可解な結果を与える。
- A[NI][NJ][NK][NR][NC]のとき、 A[i][j][k][r][c]は、0番...
#comment
** 時間計測 [#wa3a684b]
//-------------------------------------------------------...
#include <sys/time.h>
struct timeval ts, te;
gettimeofday( &ts, NULL );
...
gettimeofday( &te, NULL );
printf( "gettimeofday: %.6lf sec\n",
te.tv_sec - ts.tv_sec + ( te.tv_usec - ts.t...
//usec精度、NTPなどの時刻変更の影響を受けうる
//-------------------------------------------------------...
#include <time.h>
time_t ts, te;
ts = time( NULL );
...
te = time( NULL );
printf( "time: %d sec\n", (int)(te-ts) );
//sec精度
//-------------------------------------------------------...
#include <time.h>
clock_t ts, te;
ts = clock();
...
te = clock();
printf( "clock: %.6lf sec\n", (double)( te - ts ) / ...
//msec以下の精度、I/O待ちなどは含まれない、子プロセスの...
//-------------------------------------------------------...
#include <time.h>
//#define CLKID CLOCK_REALTIME
#define CLKID CLOCK_MONOTONIC_RAW //詳しくはman
struct timespec ts, te, tr;
clock_gettime( CLKID, &ts );
...
clock_gettime( CLKID, &te );
printf( "clock_gettime: %.9lf sec\n",
(double)( te.tv_sec - ts.tv_sec ) + (double)( te.t...
//nsec精度、もっとも正確らしい、
//CLOCK_MONOTONIC_RAW はNTPなどの時刻変更の影響は受けな...
//CLOCK_REALTIME は実時間でありNTPなどの影響を受ける
clock_getres( CLKID, &tr );
printf( " resolution: %lf sec %lf nsec\n",
(double)tr.tv_sec, (double)tr.tv_nsec ); //...
//-------------------------------------------------------...
[cf] python
import time #詳しくはマニュアルhttps://docs.python.org/
ts = time.time()
...
te = time.time()
print( f"time.time: {te-ts:.3f} sec" )
#処理系によってはsec精度まで
#他)
# time.perf_counter(): もっとも正確らしい、clock_gettim...
# time.process_time(): スリープ時間は含まず
# time.monotonic(): OS依存だがclock_gettime(CLOCK_MO...
# time.time(): OS依存だがgettimeofday相当など
# など
//-------------------------------------------------------...
** int, longなどのサイズ [#r86d491f]
| |CENTER:C99言語規格 |CENTER:LP6...
|CENTER: char | 1byte以上、int以下 |CENTER: --...
|CENTER: int | 2byte以上 |CENTER: 4b...
|CENTER: long | 4byte以上、long long以下 |CENTER: 8b...
|CENTER: long long | 8byte以上 |CENTER: --...
|CENTER: ポインタ | -- |CENTER: 8b...
|CENTER: 実装例 | -- |CENTER: Li...
ref. [1] [[C++言語でのint型とlong型とlong long型の違いに...
[2] [[cppreference.com 基本型>https://ja.cppreference.com...
** 整数のオーバーフローについて知っておく事柄 [#t12b139b]
- INT32-C. 符号付き整数演算がオーバーフローを引き起こさな...
- INT02-C. 整数変換のルールを理解する https://www.jpcert....
- Better C - Goと整数 #golang https://qiita.com/sonatard/...
** 多次元の配列とポインタとメモリ領域 [#veeaa7ed]
#ref(多次元配列C言語.jpg,left,100%,nowrap)
ページ名: