タグ

c言語に関するagxのブックマーク (105)

  • 絵で見てわかるC言語入門 - 第1章 - J

    そういえば勉強会の時に、「関数ポインタを返す関数はどうやって書くか?」みたいになったが、僕はそういう時は$ man signal して調べる派である。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/signal.2.html さて、C言語を使い慣れた人には常識ですが、C言語初心者にとって少し難しいのが、変数の宣言です。 例えば、初心者にとって、関数ポインタの配列へのポインタを返す関数の宣言を書くのはあまり簡単ではありません。 C言語の初心者には、以下のようなコードを書くのは少し難しく、また、C言語にあまり慣れていない人は、typedefなどを使ってしまいがちです。 typedef int (*func_t)(int); typedef func_t func_arr_t[10]; extern func_arr_t *x[40]; in

    絵で見てわかるC言語入門 - 第1章 - J
    agx
    agx 2009/12/02
  • ホワット・ア・ワンダフル・ワールド GMP (GNU Multiple Precision Bignum Library) を使ってみる

    Haskell とか Scheme とか ML とか Perl とかの処理系の Bignum の実装など,いろんなところで使われているけど,あんまり情報が無い気がする GMP (GNU 任意精度数演算ライブラリ). GNU MP Manual 意外と簡単に使えるみたい.Debian/GNU Linux とかだと,最初から入ってるみたい (でも CPU などに特化していない汎用のバイナリなので,速度はそれなりらしい) #include <stdio.h> #include <gmp.h> void fact(mpz_t n, mpz_t a, mpz_t r) { if(mpz_cmp_ui(n, 0) == 0) { mpz_set(r, a); return; } mpz_mul(a, a, n); mpz_sub_ui(n, n, 1); fact(n, a, r); } int ma

    agx
    agx 2008/01/20
    任意精度数演算ライブラリ
  • 講義資料 - PukiWiki

    講義資料 † 注: 直したつもりではありますが去年からの更新のし忘れで,python.logos.ic.i.u-tokyo.ac.jp というサーバ名が,ときどき marten.logos.ic.i.u-tokyo.ac.jp となっていることが有るかもしれません(もうないつもり).marten はすべからく pythonと読み替えてください ここには、講義のスライドや配布資料がアップされます。 ↑ テストデータ, reference情報など † 10/30 mini-Python文法 grammar.txt 10/30 字句解析器テストデータ tokenizer_test.tar.gz 11/14 構文木ヘッダsyntree.h.txt 11/14 構文木Cソースの一部syntree.c.txt 11/14 構文解析木ヘッダparser.h.txt 11/14 構文解析木Cソース一部al

    agx
    agx 2007/12/22
    mini-Python 処理系を作る
  • http://www.c3.club.kyutech.ac.jp/c3magazine/archives/2nd/LINUX/06/page_7.html

    agx
    agx 2007/10/25
    WAV再生プログラム
  • Loading...

    agx
    agx 2007/08/03
    一般的なデバッグの書き方
  • GLUTによる「手抜き」OpenGL入門

    資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日語 (OpenG

  • C言語による間違えトップ10

    このドキュメントの内容は、以下の通りです。 はじめに 1. ターミネートされていないコメント 2. 思いがけない代入/思いがけないブーリアン式 3. 非衛生的なマクロ 4. 不適切なヘッダファイル 5. 幻は値を返した 6. 予測できない構造体の構築 7. 不明瞭な評価のオーダ 8. 簡単に変更されるブロックスコープ 9. 寛容なコンパイル 10. 危険な戻り値 11. 未定義のオーダの副作用 12. 未初期化のローカル変数 13. 散らかったコンパイル時環境 14. underconstrained 基的なタイプ 15. まったく安全でない配列 16. 8進数 17. 符号ありキャラクタ/符号なしバイト 18. とてつもなく大変な "標準ライブラリ" 19. 将来の拡張のために予約されている 元ネタについて さいごに プログラミング言語を学ぶ はじめに ソフトウェア開発では、いろいろな

    agx
    agx 2007/07/18
  • Lisp500

    [up] | news license installation usage bugs features Is your program large and complex? Are you tired of Greenspunning? Now, in only 500 lines, here we have an informally-specified bug-ridden implementation of Common Lisp, ready to meet your needs. -- Christophe Rhodes Lisp500 is a 500-line implementation of an informally specified dialect of Lisp. It attempts to be not too bug-ridden. Unfortunate

    agx
    agx 2007/07/14
    Cで書いた500行でLisp
  • MAKEの第一歩(入門)

    makeというコマンドは、Makefileというファイルの記述に従ってファイ ルの更新を行なうユーティリティです。 と書いてもよくわからんだろうなぁ(^^; まあ、最初のセクションmakeって何するもん?でも読んでみてください。 このページの目標地点は入門の手前あたりまでです。「makeって聞いた ことはあるけど」とか「ちょっと触ってみようかな?」というレベルを 対象に書いてみました。「Makefileって最初だけを大文字にしなくちゃ いけないの?」などということさえ書かれていません。そのへんはman かinfoか成書で調べてください。 なお、このページ中で $ ls などと書いてあるときの$はコマンドプロンプトです。 目次 makeって何するもん? もっとも簡単な例 複数ファイルの場合 マクロの利用 ターゲットの生成方法の指定 ちょっとした応用 C以外にmakeを使う サフィックスルール

  • fopen("foo.txt", "rt"); (#42531) | fopenのなぞ | スラド

    元々UNIX用として作られたCのライブラリは「改行とは0x0aである」ってことが前提になってます。これをMS-DOS/Windowsでも使えるようにするために作られたのがtモードです。 読み込みのときは自動的に0x0dを取って、書き込みのときは付加するようになってます。こうすることで、fopen以外の関数はUNIX用のやつがそのまま使えるってわけです。ほかにもバイナリであることを明示的に指定するbってのがあったはず。

    agx
    agx 2007/06/01
    fopen での t オプション
  • 404 Blog Not Found:Cで強引にたらいを後回し

    2007年05月22日22:00 カテゴリLightweight Languages Cで強引にたらいを後回し 404 Blog Not Found:λ萌え - たらいを後回しを書いた後、なんとかCでも出来ないかと、車輪の再発明する代わりに横車を押してみた。 GCCにはclosureがある! 実は以外と知られていないが、gccでは無名関数は使えなくとも、closureは使える。最近では無名関数をサポートしている言語が人気ということもあり、また無名関数の多くがclosureとしても用いられているため、無名関数の別名としてclosureという呼び方をすることもあるが(私もときどきやる)。この二つは来は別物である。JavaScriptで書くと、 var outer = 1; var closure = function(x){ return outer++ }; var nonclosure

    404 Blog Not Found:Cで強引にたらいを後回し
    agx
    agx 2007/05/23
    Cでクロージャ
  • http://www.teu.ac.jp/kougi/hasimoto/ImageProcessing/image/index.htm

  • CUnitによるテスト駆動開発:CodeZine

    はじめに CodeZineでの僕のデビュー記事『Cで実現する「ぷちオブジェクト指向」』、おかげさまでなかなか好評だったようです。まだまだCは現役だと実感しました。 前回に引き続きCのお話です。テストをよりどころに実装をすすめ、信頼できるコードを書くためのプラクティス「テスト駆動開発」(TDD:Test Driven Development)を、Visual C++ 2005 Express EditionとUnit Test Framework: CUnitで行います。対象読者 そこそこのコードは書けるようになったけれど、どうも詰めが甘い/くだらないバグに出くわす/あっちを直すとこっちが壊れ、ぐだぐだになってしまう…そんな症状に悩まされている脱ビギナを目指すプログラマ。テスト、してますか? 「プログラムは思ったとおりには動かない、作ったとおりに動く」 思ったとおりに作ってないと思ったとおり

  • Ruby拡張ライブラリ作成チュートリアル

    目次 準備 まずはC言語プログラムを呼び出す 簡単な数値のやりとり NArray配列を渡す Swigを使ってお手軽変換 参考文献 準備 このチュートリアルではRuby 1.8系列の使用を前提にしています。 確認はすべてRuby 1.8.4 [i386-Cygwin]で行いました。 NArrayはVersion 0.5.8を用いています。 またそれ以外に以外に以下のものが必要です。 Cコンパイラ Rubyのコンパイルに用いたものと同じものが必要です。 バイナリパッケージを導入した場合はどのコンパイラでビルドされたものか 知る必要がありますが、UNIX系ではたいていgccです。 ruby.h, mkmf.rb Rubyをソースコードから自分でビルドした場合はインストールされていると 思いますが、バイナリパッケージを導入した場合はruby.hやmkmf.rbがあるか 確認する必要があります。開発

  • ISO/IEC JTC1/SC22/WG14 - C

    2024-06-14: projects | documents | contributing | meetings | contacts ISO/IEC JTC1/SC22/WG14 is the international standardization working group for the programming language C. The current C programming language standard (C17) ISO/IEC 9899 was adopted by ISO and IEC in 2018. To obtain the international standard, please contact your national member body. Work on projects and their milestones include

    agx
    agx 2007/02/07
    C言語のISO規格のサイト
  • GNU make 日本語訳(Coop編) - 目次

    著者 :リチャード・M・ストールマン, ローランド・マグラス (GNU プロジェクト) 訳者 : いのまた みつひろ / ecoop.net(技術メモ公開中) 翻訳文更新日:May 20, 2002(翻訳終了・未校正) Linux 標準搭載の make コマンド, 別名 gmake の日語版です。 この資料の著作権は Richard.M.Stallman & Roland.McGrath と Free Software Foundation にあり、また翻訳版には前述の著作者に加えて ecoop.net に著作権があります。再配布・転載等される方はこちらを見て下さい。 GNU Project についてはgnu.org(日語)を参照のこと。 序文はこちら GNU makeユーティリティは大きいプログラムのどの断片が再コンパイルされる必要が あるかという事と,それらを再コンパイルする発行コ

  • Remake - GNU Make with comprehensible tracing and a debugger

    Remake – GNU Make with comprehensible tracing and a debugger remake is an enahanced version of GNU Make that adds improved error reporting, better tracing, profiling and a debugger. The latest version is based off of the GNU Make 4.3 source, although versions are available based on 4.2.1, 4.1, and 3.82. We also have a some cool debuggers for: Python 3, Python 2, GNU Bash, Z Shell, Korn shell, Perl

  • Make と Makefile の説明

    まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)

  • http://www1.doshisha.ac.jp/~jmizushi/program.html

    agx
    agx 2007/01/27
    『理工学のための数値計算法』中の表の数値データなどを計算する C と Fortran90 のサンプルプログラムを紹介
  • name mangling と extern "C" - memologue

    さて、T君と飲んだ理由は、昼間にオシゴトの技術的な相談に乗ってあげたからなのだが…。平日昼に急に携帯に電話がかかってきてビックリした。曰く、 ずっとJ2EEなコードを書いて暮らしていたのだが、わけあって急にVxWorksとC++で組み込み機器向けのコードを書くことになった。が、組み込みやC++に詳しい人間が全く居なくて難航している。 現状誤動作しており、とりあえず早急に修正しなければならないコードがあるのだが、誤動作の原因がさっぱりわからない。相談に乗ってもらえないか。ていうか助けて。コンパイラはGNUのを使っている。Cを学んだ事はある。 へいへいOKOK。 構造体Aがある。この構造体はa.hで定義されている。 構造体Aを操作する関数fooがある。fooのプロトタイプはfoo.hに書いてあり、int foo(A* a); となっている。foo.cppで関数fooが実装されている。 今問題を

    name mangling と extern "C" - memologue
    agx
    agx 2007/01/13
    CとC++を同時に使うときに気をつけること