タグ

Cに関するkyorecobaのブックマーク (25)

  • なぜCを学ぶべきなのか - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ

    プログラミング言語としてのCは、初学者にとっては難しい言語であるのは確かです。中には、初心者が学ぶべき言語ではないと言い出す人もいます。ですが、私たちセキュリティ・ネットワークコースの教員は、我々のコースの学生は早期にCを学ぶべきであると考え、このカリキュラムを設定しています。以下に理由を列挙します。 Cはコンピュータの構造に深く根ざした言語なので、コンピュータそのものの学習を同時に進めることで、相互の理解が深まると考えています。例えば主記憶(メモリ)上にプログラムとデータの双方が置かれるフォン・ノイマンアーキテクチャや、メモリ上のデータ配置の問題、エンディアンの問題などを直接感じられるのはCならではだと思います。 CはOSや、コンパイラなどの言語処理系、組み込み機器などで広く使われており、その構造や動作と深く関わっているため、セキュリティとネットワークの理解のために欠かせないからです。

    なぜCを学ぶべきなのか - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ
    kyorecoba
    kyorecoba 2020/05/26
    このコースを履修するような学生は「初手からC」としても問題ないのでしょう。
  • kur.jp - C言語入門者がポインタで躓く3つの理由

    kur.jp バイオリンと自転車をこよなく愛する大学院生のチラシの裏.たまーに技術的なことも書いたりするかも知れません. Home About Me Link 先日,とある一部上場企業で,「技術系新入社員の方にC言語を教える」と言う,とても楽しいイベントがありました. この講義では,Windows環境にCygwinのインストールから始まって,関数やポインタや構造体等を学び,10日かけてC言語を一通り使えるようになってもらおうと言うものです.さすがに業務として受講しているからか受講生は真剣そのもの.教えるほうにも,ついつい熱が入ります. ところで,この講義では,座学の時間よりも演習の時間をたっぷり取って,受講生に,自分の手を動かしてプログラムを組んでもらっています.具体的には,講義時 間の3分の2以上を演習と,その解説に当てています.演習時間中は,教室の中を歩き回って,どんなプログラムを書い

    kyorecoba
    kyorecoba 2008/07/16
    『ポインタをどう使えば良いのかわからない』
  • 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found

    2008年05月09日22:00 カテゴリ書評/画評/品評Lightweight Languages 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 アスキー改めアスキーメディアワークスの鈴木様より献御礼。 Unix/Linuxプログラミング 理論と実践 Bruce Molay / 長尾高弘訳 C言語を通してUnix/Linuxの仕組みを学べる良著。Perl/Python/Rubyクックブックのレシピを、レシピを並べる(遅延学習的)のではなく、レシピの難易度順に並べ直して、実践を通して理論を学ぶことが出来るように仕立ててある。 書「Unix/Linuxプログラミング理論と実践」では、以下の目次のとおり、実際のUnixコマンドを「再発明」することで仕組みを学んでいく。 目次 - Unix/Linuxプログラミング 理論と実践にないのでBooksデータベー

    「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found
    kyorecoba
    kyorecoba 2008/05/10
    おもしろそう
  • 【ハウツー】今こそ再考察! C言語ポインタ徹底解説 (1) ポインタと1次元配列の関係 | エンタープライズ | マイコミジャーナル

    C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図

    kyorecoba
    kyorecoba 2008/04/22
    mainの引数の考察記事…かな。初学段階では「ポインタは型を持ったアドレス変数」ということを理解した上で先に進めばいいのでは。
  • strchr() ではまった話 - bkブログ

    strchr() ではまった話 標準Cライブラリに strchr() という関数があります。文字列の先頭から指定した文字を探すという単純な関数なのですが、先日、意外な仕様を知りました。 以下のコードを見てみます。 if (strchr("+-*/", c)) { // c は四則演算の記号かな? ... } この if 文は c が + - * / のいずれかの場合に条件が真となり、ブロック中が実行されます。…と、思いきや、実は条件が真になるケースがもうひとつありました。c が '\0' の場合です。 まさかと思って手元の Linux の man を見ると、文字列の終端のナル文字 ('\0') の扱いは明記されていません。 The strchr() function returns a pointer to the first occurrence of the character c i

    kyorecoba
    kyorecoba 2007/12/24
    '\0'は番兵さん。番兵さんも要員の一人だと覚えていました。
  • メモリリーク検出 - へたっぴ日記

    VC++では_Crt〜関数でメモリリークを容易に検出できるが、使い方を間違えてありもしないメモリリークで悩んでいる人がいた。コードはこんな感じ。 //foo.cpp #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) //てきとー class Foo { private: char* buf; public: Foo() { buf = new char[1]; } virtual ~Foo() { delete [] buf; } }; void main(void) { //ダンプ先を標準出力に設定 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); _Cr

    メモリリーク検出 - へたっぴ日記
    kyorecoba
    kyorecoba 2007/11/13
    『Java使いの彼はデストラクタが呼ばれるタイミングなんて考えたことがないそうだ…。』
  • 配列とポインタ - odz buffer

    念の為に書いておくと、配列とポインタは明確に違うもの。 そのあたりを誤解していると、 void func(int **a); int a[2][2]; func(a); がコンパイルエラーになることが理解出来ないんじゃないかな。 もちろん、 void func(int *a); int a[2]; func(a); はOKなので、そのへんが混乱のもとなんではないだろうか。 あと、 char *s = "abc"; と char s[] = "abc"; の違いを説明出来る人も少ないんじゃないかなぁ。実際問題、教える側で理解してない人もいたりするので実務経験のある人にアンケートとってみたいところ。

    配列とポインタ - odz buffer
    kyorecoba
    kyorecoba 2007/08/18
    「メモリ」の理解
  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
    kyorecoba
    kyorecoba 2007/06/04
    全自動卓なんかでバグを出すと血の雨が降ります。
  • CSS のコメントの書き方コレアレ

    CSSHTMLと同じように、ソース中にコメントを挿入することができます。 /*と*/で囲った文字列がコメントになりますが、入れ子にすることはできません。また、他のプログラムにあるような「#」や「//」といった単一行コメントはありません。 適切なコメントを挿入することで、複数人での作業するときや、時間がたってから編集するときなどにコードの見通しが良くなります。ブラウザ間の差異を埋めるための宣言やハックなんかも、適用させるブラウザ名や理由などをきちんとコメントで書いておきたいですね。 僕は、スタイルをグループに分けて記述するときなど、コメントを目立たせるために次のように記述しています。 /* ------------------------------ Header ------------------------------ */ div#header { } . . /* -------

    kyorecoba
    kyorecoba 2006/12/02
    ANSI Cと同じ書式であり、その場合は各行に/*と*/とを書くようにしていました。
  • ボーランド、各種プログラミングソフトの無料提供開始

    ボーランドが伝統あるTurboブランドの復活として、Turbo Delphi for Win32、Turbo Delphi for .NET、Turbo C++、そしてTurbo C#のTurbo Explorer版の無料提供を日から始めました。ちゃんと日語版も用意されています。 ダウンロード手順は以下の通り。 ボーランド デベロッパーツールズグループ、伝統あるTurboブランドの復活を発表 Turbo Explorer Downloads:Download your free copy of Turbo Explorer today! まずはTurbo Downloadsのページにアクセス。 ダウンロードしたいソフトウェアのリンクをまずはクリック 「New User」をクリック 必要事項を入力していきます。大体このスクリーンショットの通りで大丈夫です。「Register」をクリック

    ボーランド、各種プログラミングソフトの無料提供開始
  • Puzzle De Programming

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • マウスジェスチャを実装する(Win32版):CodeZine

    はじめに 私はGUI環境で簡単にコマンドを送ることができるマウスジェスチャが大好きです。今回はそんなマウスジェスチャを作ってみましょう。なお、.NET版については別稿を参照してください。対象読者 C言語(またはC++言語)でWin32のプログラムを開発したことがある方。必要な環境 少なくとも32bitWindows環境が必要です。64bit環境でのテストはしていませんが大丈夫だと思います。設計 まずは構想を練らなければなりません。今回はサンプルなのでこちらで決めさせて頂きます。右ボタンが押されたら始まり、離されたら終わる。入力可能方向は4方向(斜め判定は無し)同じ方向への連続入力は無し(普通はこうすると思います)ある方向に動かすと反対側の移動量は0になる縦横の移動量を比較して多い方だけを考える(より自然な移動になる)ウィンドウの外に出てもしっかりと動作するようにする(これを行わないと変な

  • andymcm.com

  • Google Ctemplate

    We've Moved! Google Ctemplate is now hosted at code.google.com. Our new homepage is located at http://code.google.com/p/google-ctemplate. Overview The ctemplate package contains a library implementing a simple but powerful template language for C++. It emphasizes separating logic from presentation: it is impossible to embed application logic in this template language. Ctemplate is distributed unde

  • プログラミング・開発者・ソースコード CodeZine:prototype.jsを利用したドラッグできるWebカスタムコントロール(Webカスタムコントロール, prototype.js, ドラッグ)

    はじめに ネットサーフィンをしているとホームページなどで、ドラッグ&ドロップ可能な、ふわふわ浮かぶメニューなどを見かけることがあります。例えば菊池さんの工作室のメニューのようなコントロールです。これを実現するASP.NETのカスタムコントロールを作成します。対象読者 HTML、StyleSheet、JavaScriptの基礎知識がある人。また、ASP.NETでカスタムコントロールを作成した経験があり、prototype.jsの理解もあることを前提にしています。動作環境 prototype.js ver 1.4、ASP.NET 2.0、IE6.0で動作確認しています。それ以外での動作は未確認です。解説の流れ 以下の順で解説していきます。ASP.NETカスタムコントロールの作成外部JavaScriptファイルへのリンクの方法prototype.jsの拡張ドラッグ&ドロップ機能の実装浮遊機能の実

  • 画像からASCIIアートを自動生成する:CodeZine

    実行例の元画像(kingyo.gif) はじめに 文字を組み合わせて絵を表現する「アスキーアート」を知らない方はいないと思いますが、これを作れるのは一部の職人だけです。とても素人が作れる代物ではありません。しかし稿で紹介する手法を用いれば、職人には遠く及ばないまでも、誰でも簡単にアスキーアートを作ることができます。 画像からアスキーアートを自動生成するのに問題となる事柄は次のとおりです。文字を画像に変換する方法余白を含めたフォントサイズを取得する方法画像に最も近い文字を判定する方法  また単色である文字と画像とを比較するために画像を2値化する方法  も解決しなければなりません。稿ではこれらについて一つ一つ解説していきます。さらにHTMLにも対応することで文字の色やフォントを指定できるようにしました。対象読者 「C言語」「Win32API」および「DIBSection」を理解している方。

  • C++で線を描画する際のさまざまなテクニック:CodeZine

    サンプルプログラム 記事上部のリンクからバイナリファイルをダウンロードして解凍し、「LineDraw.exe」を実行してください。画面について プログラムを実行すると、黒色の背景の上に同心円が表示されます。左側には、表示パラメーターや操作方法、処理時間などが表示されます。操作方法について

  • 良い乱数・悪い乱数

    C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

  • プログラミング情報誌「C MAGAZINE」が休刊か | スラド レビュー

    あるAnonymous Coward曰く、"1989年創刊で、国内で最も歴史が長いプログラミング専門誌の一つと思われるC MAGAZINE(月刊/ソフトバンク クリエイティブ発行)が休刊となるようだ。ニュース元はIT関連メディア専門の広告代理店であり、IT系メディアのニュースサイトを運営しているf/x(エフエックス)の2006年1月13日の記事で、同じくソフトバンク クリエイティブ発行の「パソコン購入ガイド」誌と共に、3月発売号で休刊となるそうだ。 ソフトバンク クリエイティブは最近ライトノベルを刊行したり、レイザーラモンHGの関連を出したりと、一般向けの書籍に力を入れている様子。一方でPC関連雑誌は次々と休刊されており、これから同社の他のPC関連雑誌も同様に、切り捨てられる可能性も考えられる。 個人的にはC MAGAZINEは学生時代からの読者であり、今の自分のプログラミング技術はこの

  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ