タグ

c言語に関するtoshiyukinoのブックマーク (39)

  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • バグを生まないコーディング法、10個の規則でソフト開発を効率化 | EE Times Japan

    ソフトウエア開発にはバグがつきものだ。ただし、バグの発生を最小限にい止める方法がある。コーディング規則を適用してコードを記述することだ。バグが発生してからそれを発見し、修正するという通常の開発手順に比べて、簡単に、しかもコストをかけずにバグをつぶせる。 ここでは、ZigBeeを利用したセキュリティ・システムから医療機器にわたる筆者の組み込みソフトウエア開発の経験から得た、バグをなるべく発生させないコーディング規則を紹介する。 なぜコーディング規則が必要か コーディング規則は、ソフトウエア開発者に対して、コードを記述する上での規則をまとめたものである。英語のライティング教として著名な「The Elements of Style」(William Strunk Jr.、E. B. White著)の、プログラミング言語版のようなものだ。 組み込みソフトウエアにも、きれいで、正しく、簡潔に書く

  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
  • Stdcall and DLL tools of MSVC and MinGW

  • Big Sky :: ニコニコ動画をダウンロード出来るプログラムをC言語で作ってみた。

    追記 最新版はgithubで作ってます。 mattn's nicodown at master — GitHub http://github.com/mattn/nicodown/tree/master 適当だけど書いてみた。 タイトル取って来る所はlibxml使うの面倒臭かったのでXMLパーサ使わずベタで(実態参照文字あると変になるので気を付けて)。Windowsの場合だけWin32 APIでシフトJISにファイル名を変換しています。 荒いコードなので色々直し所がありますが、サンプルって事で。 //#define CURL_STATICLIB #include <curl/curl.h> #define HEX_DIGITS "0123456789ABCDEF" #define IS_QUOTED(x) (*x == '%' && strchr(HEX_DIGITS, *(x+1)) &

    Big Sky :: ニコニコ動画をダウンロード出来るプログラムをC言語で作ってみた。
  • C言語講座:16進文字列を10進数に変換

    [パスカルの三角形]←このソース→[構造体とは] /* 今日は16進文字列を10進数に変換する関数を作ります。最初に今日学ぶ標準ライブラリ関数、tolower( )について簡単に説明します。 #include <ctype.h> char tolower(char c); 例:tolower(c); 実行結果 戻り値 成功 英大文字であれば小文字 tolower( )はcが英大文字であれば小文字に変換して返します。そうでなければそのまま返します。 ソースプログラムの説明 それでは、10進数に変換する関数を作ります。この関数の名前は、ToDec( )とします。引数として、8桁までの16進文字列を取ることにします。引数をこの関数は書き換えてはいけないので、constを付けて宣言します。8桁までの16進数は、unsigned long型(4 バイト)で表せるので、戻り値は unsigned lo

  • make

    機能 概要 ファイルの構成 必要条件の自動生成 ルールの書き方 ( 明示的 ) 書き方 ワイルドカードの使い方 ディレクトリ検索 偽のターゲット 組込み済ターゲット名 複数のターゲット 複数のルール 静的なパターンルール ダブルコロンルール コマンドの書き方 制御用特殊文字 エコー 実行 エラー 中断と kill 再帰的用法 変数(マクロ) 定義 参照の基礎 参照の進んだ機能 テキストの追加 環境変数の取得方法 自動変数 make の実行 makefile ゴールを指定する引数 オプション 変数のオーバライド 実行の継続 暗黙のルール 使い方 カタログ 定義済み変数 連鎖 パターンルール 最終ルールの定義 サフィックスルール 検索アルゴリズム その他 オプション 主なターゲット make ファイルの約束

  • Boost C++ Libraries

    ライブラリ . ドキュメント: 最新のリリース CVS(毎日更新) . ライセンス . Getting Started . 退行テスト: 一般的な情報 テスト結果 メーリングリストと ニュースグループ . Boost (Developers) . Boost Users . Project-Specific . Announcements . Discussion Policy サポート . FAQ . Request Support . Report Bugs . Suggest Features . Commercial Support . Also: Mailing Lists About . Formal Reviews . Review Schedule . Requirements . Guidelines . Submissions Other Resources . Fil

  • SQLite3におけるREGEXP演算子 - anon_193の日記

  • http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print%20200606/06060060.txt

  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

    タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ

  • C言語ポインタ談義 | Netsphere Laboratories

    2008.12.8 新規作成。 (1999.12.14-16, 1999.12.28, 2001.7.23 の日記を再構成、加筆。) はじめに C言語は、今の感覚だとずいぶん古くさいプログラミング言語ですが、まだまだ幅ひろく使われています。 C言語は、「ポインタ」が難しいという評判があります。優れた解説もあるものの、一方で明らかに妥当でないものも駆逐されずに広く公開されています。 このページでは、C/C++言語でのポインタと配列について改めて整理していこうと思います。 もとの日記の「fjで一時盛り上がっていた」とか「infoseekで・・・を検索」というフレーズが時代を感じさせます。fj.comp.lang.c とかまだあるんでしょうか。 参照する仕様 (2020.1) C言語 (plain C) の最新の仕様は, ISO/IEC 9899:2018 です。"C17" と呼ばれます。gcc

  • BSTR

    BSTRは、Visual BASICの文字列型の実装に利用されている構造体だ。 定義は、wtypes.hにある。 typedef /* [wire_marshal] */ OLECHAR __RPC_FAR *BSTR; これだけ見ると、単なるOLECHARへのポインタに見える。ちなみにOLECHARも同じくwtypes.hにある。 typedef WCHAR OLECHAR; さらにWCHARは、同じくwtypes.hに typedef wchar_t WCHAR; と定義されている。 が、これはBSTRの実体の半分しか映していない。残り半分は、同じくwtypes.hの次の定義である。 typedef struct _WORD_BLOB { unsigned long clSize; /* [size_is] */ unsigned short asData[ 1 ]; } WORD_B

  • gcc 逆アセ

    GCC の処理の流れ GCC を起動すると、前処理(preprocessing)、コンパイル、アセンブル、リンクの 4 段階で処理が行われます。全体的(overall)オプションを使うとこの一連の処理を途中の段階で停止することができます。次のプログラム hello.c を例にとってこの課程を覗いてみましょう。 #include <stdio.h> main() { printf("hello, world\n"); } まず hello.c の前処理だけしてその出力を覗いてみましょう。コマンドラインから、次のように入力します。 $ gcc -E hello.c | sed '/^[ ]*$/d' | less ヘッダファイル stdio.h が読みこまれて展開され、データ型の定義や、関数のプロトタイプ宣言がされているのが分かります。次に処理を全処理、コンパイルで止めてみます。コマンドライン

  • ビルド - VC/MFC/VC#

    -------------------------- ・プリプロセッサ定義 _CRT_SECURE_NO_DEPRECATE を追加 THREADSAFE を追加 -------------------------- http://damedame-programer.cocolog-nifty.com/blog/2008/10/sqlite3-ver364.html ・ソース修正 fts3.tokenizer.c 30行目 SQLITE_EXTENSION_INIT1 ↓ extern const sqlite3_api_routines *sqlite3_api; -------------------------- ・DLLを作るときは、使用するライブラリをマルチスレッドにする -------------------------- ・プリプロセッサ定義 SQLITE_ENABLE_F

    ビルド - VC/MFC/VC#
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

  • Win32 programming with bcc and gcc

    [home] [back] コンパイラに1円も払わない窓プログラミング UNIXではgccがタダで使えるんだから、 WindowsでだってVC++になんか金を出せるか、と思っていた筆者だが、Borland C++ Compiler 5.5の無料配布をきっかけに、 こいつで窓プログラミングをしてみよう、と思い立った。 それに、Cygwinでだって窓プログラム書けるんでしょ? そうです書けます。 これは、そんな筆者によるメモです。 残念なことに、 このような情報は(特に日語では)ほとんど存在しないようなので、 同じような境遇の人の助けになることと思います。 念のため付け加えておくと、この道はいばらの道です。 窓プログラミングを体験してみたいが金がないという場合にも、 投入する時間を考えるとVC++を買った方が安上がりかもしれません。 (とはいえ、筆者がかきわけた道を通るのは幾分楽なはずですが

  • バージョン情報タブの作り方

  • Makefileの書き方 - スキルアップ輪講

    makeって何? † ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の無駄です。 そんな問題を解決するのがmakeです。Makefileと呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド、ファイル間の依存関係を記します。そして、“make”というコマンドを実行するだけで、自動的にコマンドを実行してコンパイルしてくれます。これだけではスクリプトと大差がないのですが、makeはMakefileに記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで、コンパイル時間を短くします。 makeは特定のプログラミング言語に依存したものではありません。C言語のソースファイルのコンパイルにも使えますし、Verilog-HDL

  • なぜ make には mingw32-make.exe という名前が付けられているのですか? - MinGW について頻繁に尋ねられる質問と回答(MinGW FAQ)

    sixnine.net 2024 著作権. 不許複製 プライバシーポリシー