タグ

cに関するmi-tyuのブックマーク (8)

  • C言語最大の欠点

    1980年代、筆者が高校生・大学生だったころに「C言語がすごい」という話を友人から聞いていた。しかし、当時の筆者が触れていたのはMSXパソコンのBASICと大学の汎用機のFortranくらいだった。C言語をやっと手に入れたのは、1992年の暮れである。清水の舞台から飛び降りるような気持ちでBorland C++の大箱を買って帰った。 それから20年近くが経過した今でも、C言語は「最強のプログラミング言語」と呼ぶべきポジションを確保し続けている。UNIXオペレーティングシステムとC言語が世界に与えたインパクトの大きさは、実に大きなものがあった。 ただ、C言語を学習したり評価したりする際には、C言語の大きな欠点を知っておく必要があるだろう。筆者が考えるその大きな欠点とは、「文字列の扱いが非常に面倒」であることだ。 「バッファオーバーフロー」を回避するのは大変 例を示そう。図1はC言語で記述した

    C言語最大の欠点
  • C言語を使ったコンソールアプリケーションの作成 コマンドラインオプションの解析方法

    はじめに C#やVB.NETを用いることで手軽にGUIアプリケーションが作れるようになったとはいえ、ちょっとしたツールを書くときなどは、手軽さからC言語を使ったCUIのプログラムにしてしまうことが多いのではないかと思います。このようなCUIベースのツールを作るとき、よく使うのに面倒な処理としてコマンドラインオプション(以下オプション)の解析が挙げられます。 そこで稿では、PC-UNIX系の環境でよく使われるgetopt関数をC言語から使う様子を紹介しながら、同様の方法をWindows上で実現するための方法について説明します。 対象読者 C言語を理解していて、getopt関数を使ったオプションの解析方法を知りたいという方 なお、サンプルプログラムはすべてC言語で書かれており、Debian GNU/Linux + gcc 4.3でコンパイルと動作確認を行っています。また、Windows向けに

    C言語を使ったコンソールアプリケーションの作成 コマンドラインオプションの解析方法
  • TCPを使う(acceptした相手の確認):Geekなぺーじ

    TCPサーバはlistenした後にクライアントからのコネクションをacceptしますが、どのクライアントからのコネクションをacceptしたかを知りたい場合があると思います。 ここでは、接続相手を確認する方法を説明したいと思います。 acceptした相手を表示するサンプル acceptの第二引数は、接続した相手に関する情報を含んでいます。 以下のサンプルは、acceptした相手のIPアドレスとポート番号を表示します。 IPアドレスの表示にはinet_ntoaを利用します。 inet_ntoaは、引数として渡したstruct in_addrを表現する文字列を返します。 #include <stdio.h> #include <winsock2.h> int main() { WSADATA wsaData; SOCKET sock0; struct sockaddr_in addr; str

  • DirectX Programmers Page

    <body bgcolor="#FFFFFF"> </body>

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • サブルーチン・関数定義比較(Hishidama's Programming language "function")

    サブルーチンとは:ひとまとまりの処理を行う。 関数とは:渡した値(引数(ひきすう))を使って演算を行い、結果を返す。 MSX-BASIC [2005-01-16/2006-07-26] VisualBasic for Application [2005-01-16/2007-08-25] VBScript [2007-04-06] VB.NET [2006-04-15/2007-03-22] PASCAL [2005-02-10] PL/I [2005-01-16] Perl [2005-03-12/2006-07-11] C言語(gcc, WIN32) [2005-01-16/2007-08-25] Visual C++(MFC) [2005-01-16/2007-08-25] Java [2005-01-16/2007-08-25] JavaScript [2006-01-08/200

  • サービス終了のお知らせ

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

  • 猫でもわかるプログラミング

    超初心者対象の、C/C++/C#プログラム教室です。 「Windows95/98/2000/XP使うだけには飽きた」「以前Cをやったことがあるが、ポインターでつまずいた」 「プログラムは、全く経験がない」「DOSのプログラムは、作れるがWindowsのプログラムは ちょっと・・・」という方のためのホーム・ページです。中級者以上の方、セミプロの方、 プロの方ご遠慮ください。Macユーザーの方も私の力不足のためお役に立てません。 Webmaster Yasutaka Kumei [How To Walk][画像が表示されない時は] [VC++6.0でうまくビルドできない時は] [リソースがうまく表示されない時は(VC++6.0)] [リソースがうまく表示されない時は(VC++.net)] [メッセージ・ループ] [WinXP+VC++.netでコンパイルできない時は] [.netでパラメータ・

  • 1