タグ

c言語に関するsiro_umaのブックマーク (8)

  • 浮動小数点演算ではまった話 - bkブログ

    浮動小数点演算ではまった話 浮動小数点演算のありがちな問題ではまりました。 いろいろ調べているうちに x86 特有のちょっとおもしろい 現象に遭遇したので紹介したいと思います。 パーセンテージの計算 簡単な C のプログラムでパーセンテージを計算しようと思い、 次のようなコードを書きました。 int x, y; ... int a = (double)x / y * 100; int a = x * 100 / y としないのは、 x が大きい場合に x * 100 が オーバーフローを起こす (INT_MAX を越える) ためです。 このコードは一見、期待通りに動いていたのですが、 しばらく使っていると、手元の環境では x = 53, y = 100 のときに a は 53 ではなく 52 になることに気づきました。 これは次の理由によります。 式の最初の (double)53 / 10

  • Eclipse CDT

    CDT 拡張ポイントを使用 Top ■プラグインのインストールと設定 ■インストール 更新サイト "Callisto Discovery Site" からインストールできます。 [Help] - [Software Updates] - [Find and Install] - [Search for new features to install] - [Callisto Discovery Site] から CDT をインストールします。 ■バイナリー・パーサーの設定 デフォルトのままの設定では、コンパイルして生成された実行ファイルは、CDT に正常に認識されないことがあります。この問題を回避するため、つぎの手順にしたがって、バイナリー・パーサーを設定します。 [Window] - [Preference] - [C/C++] - [Make] - [New Make Projec

  • UbuntuTips/Application/EclipseJapaneseSetup - Ubuntu Japanese Wiki

    はじめに ここではBabel プロジェクトの言語パックを使う方法とMergeDoc プロジェクトの Pleiades を使う方法の 2 つについて説明します。2 つの違いについてはPleiades- Eclipse プラグイン日語化プラグインの「■ 言語パックと Pleiades による日語化の比較」を参照してください。 Pleiades 版 対象とするUbuntuのバージョン 10.10 Maverick Meerkat 11.04 Natty Narwhal 12.04 Precise Pangolin 12.10 Quantal Quetzal 対象とするEclipseのバージョン 3.5.2 Galileo 3.7.2 Indigo 3.8.0 pleiades パッケージをインストールしてください。依存関係により eclipse パッケージも同時にインストールされます。 $

  • C言語: 実行時間測定の方法

    C言語において実行時間を測定する為の方法はいくつかある。gettimeofday, clock, getrusage, timesを利用する方法である。ここではこれらの方法について検証してみる。これは2005/12/30時点での情報であり、古い亊が考えられるので注意して頂きたい。さらに、内容のほとんどはmanを移しただけなので、正確な情報を得るためにそれぞれの関数のmanを見ることを強く推奨する。 System: Linux 2.6.12 glibc: glibc 2.3.5-1ubuntu12 gettimeofdayを使用する方法 通常はこの関数を使用するのをお勧めする。 gettimeofdayはSVr4, BSD 4.3準拠である。返り値の型はsys/time.hに定義されるstruct timevalで有る。

  • Manpage of GETTIMEOFDAY

    Section: Linux Programmer's Manual (2) Updated: 2008-08-21 Index JM Home Page roff page 名前 gettimeofday, settimeofday - 時刻を取得/設定する 書式 #include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz); int settimeofday(const struct timeval *tv, const struct timezone *tz); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): settimeofday(): _BSD_SOURCE 説明 関数 gettimeofday() と settimeofday()

  • Manpage of USLEEP

    Section: Linux Programmer's Manual (3) Updated: 2007-07-26 Index JM Home Page roff page 名前 usleep - マイクロ秒単位で実行を延期する 書式 #include <unistd.h> int usleep(useconds_t usec); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): usleep(): _BSD_SOURCE || _XOPEN_SOURCE >= 500 説明 usleep() 関数は (少なくとも) usecマイクロ秒の間、 呼び出し元プロセスの実行を延期する。 システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、 停止時間は設定した値よりも少し延ばされるかもしれない。 返り値 成功すると 0、エラ

  • Manpage of SLEEP

    Section: Linux Programmer's Manual (3) Updated: 2008-07-04 Index JM Home Page roff page 名前 sleep - 指定の秒数の間だけ休止する 書式 #include <unistd.h> unsigned int sleep(unsigned int seconds); 説明 sleep() は、呼び出し元のプロセスを seconds 秒間または無視されないシグナルが到着するまで休止する。 返り値 要求された時間が過ぎた場合はゼロを返す。 呼び出しがシグナルハンドラーに割り込まれた場合は、 休止の残り時間を返す。 準拠 POSIX.1-2001. バグ sleep() は SIGALRM を用いて実装されている。そのため、 alarm(2) と sleep() を混ぜて使用するのは、まずい考えである。 休止

  • 構造体配列のポインタ表現

    15-3.構造体配列のポインタ表現 構造体配列をポインタで扱う手順は、一般の配列をポインタで扱う場合と全く同じです。 ポインタの使用手順を忘れてしまった人は「10-2.配列とポインタ」を確認してください。 ただし、構造体へのポインタを参照するためには、「構造体->メンバ名」のようにアロー演算子(->)を使う点に注意して下さい。 #include <stdio.h> struct seiseki { int no; char name[20]; double heikin; }; int main(void) { int i; struct seiseki seito[20] = { { 1, "SAKURAI", 78.6 }, { 2, "NAGANO", 57.3 }, { 3, "TAKESHITA", 66.4 }, }; ※ 「10-2. 配列とポインタ」で学習したように、ポイン

  • 1