タグ

関連タグで絞り込む (204)

タグの絞り込みを解除

Cに関するkiyo_hikoのブックマーク (122)

  • C言語が好きかい?

    警告:MISRA-Cでは昔continueを禁止していたが現在このルールは没になっている ■continue禁止で深いネスト(非推奨) 古いMISRA-Cルールはcontinueを禁止していたのでメイン処理がネストの深い… 続きを読む 【C言語】 continueをコーディング規約で禁止しないで下さい

  • 早期リターンを禁止されるつらさ

    転職した会社で早期リターンが禁止されている。 正確に言うと、misraCを踏襲し、関数内ではreturnは末尾に1つだけ、という制約が設けられている。 この他にも関数ポインタが禁止等も色々あるが、早期リターンを禁止されるのは当に困る。 早期リターンによってどれだけ気持ちよくコーディングできるか分かっていない。 もうこの後の行は読まなくていいんだ、という精神的安堵感。 これをもうこの会社では得られない。 関数のポインタ引数のconst禁止程の破壊力がある。 地獄のような10重以上のネスト地獄・・・。 律儀に守ることによる可読性の低下の方が問題ではなかろうか。

    早期リターンを禁止されるつらさ
    kiyo_hiko
    kiyo_hiko 2022/04/23
    ガードの事かな?https://qiita.com/kouyan/items/7b8b456b626447a1e24e 俺は禁止されたら `goto <一番後ろ>;` 使う。gotoかわいいよgoto。ちなみにMISRA-CじゃなくてCERT C読むとgotoは一部の状況(08.MEM)で推奨すらされている。割と増田の状況向き
  • ソケットの基本

    私がソケットプログラミングと出合ったのは、2000年でした。それまでDOSのプログラミングしか知らなかった私にとって、マルチタスクOS上で、複数の相手と同時に通信を行うソケットというものは衝撃的でした。当時、ソケットプログラミングを1から学習しなければならない状況になってしまった時には、すでに仕事を受注した後で、納期も迫っている状態でした。そこで、急いで文献をあさったり、ネットで検索したりしたのですが、なかなか初めての人にわかりやすく説明された文献に出会うことができません。 それでも、なんとか手探り状態でソフトを作り上げ納品したのですが、ソケットプログラミングでは常識的である事、たとえば、0バイト受信後に必須のソケットの切断処理や、ソケットからデーターを受信するバイト数が必ずしも一定ではない事を知らずに作っていたため、ひどく叱られた事を思い出します。それでもなんとか、発注先の担当者様に叱ら

  • 7-4. ネットワークサービスは必ずforkしよう

    IPA ISEC セキュア・プログラミング講座

    kiyo_hiko
    kiyo_hiko 2021/08/03
    Cでマルチプロセスで簡易HTTPサーバーを組むコード
  • ctags/parsers/perl.c at master · universal-ctags/ctags

  • C言語における再帰呼び出しの限界?について - OKWAVE

    お世話になります、AEと申します。 次のような件に悩まされています。 ○画像のラベリング処理において、再帰呼び出しによって塗りつぶし処理を行っているのですが、再帰の回数が多くなると途中でメモリリークによるものと思われるエラーが発生し処理が中断してしまいます。 #ただし、物理メモリを全部使い果たした様子はありません。 ソースコードやエラーメッセージを添付できず、漠然とした質問で大変心苦しいのですが、一般論として、 ○Windows上で開発したプログラムにおいては、再帰の回数(あるいは再帰呼び出しのために確保されるメモリ量)は有限なのでしょうか?また有限であったとしてそれを拡張する設定があるのでしょうか? ということについてご意見などいただければと思います。 **** 無論、プログラム自体の不具合によってメモリリークを引き起こしているんじゃないの?とか、そもそもメモリが足りてないんじゃないの?

    C言語における再帰呼び出しの限界?について - OKWAVE
    kiyo_hiko
    kiyo_hiko 2021/01/19
    Cの場合やっぱりスタック依存か。他の言語は制約とか掛かったりするのかな
  • Google Sites: Sign-in

    kiyo_hiko
    kiyo_hiko 2021/01/04
    "CCTree is a Vim 7 plugin that displays hierarchical call-trees for functions or files using a Cscope database."
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    kiyo_hiko
    kiyo_hiko 2020/10/20
    Cこわ…手を出さんとこ
  • コーディング規約メモ

    Cコーディング・スタイル例 以前(2~4年前)に、社内向けにコーディング規約案を書いたことが あり、その残骸?があったのでコーディングスタイルの例として 出しておきます。 規約といってもラフなものですし、その当時の自分の スタイル/自衛手段を書き出し、これを叩き台にして他の人の要望 などを反映させたりしました。以下は、 社内事情や自分のスタイルに合わない個所をいくつか 削除しています(自分の習慣でない記述も残っていますが)。 単なる一般的な自衛手段だったり 完全に自分の好みのこともありますが、 一応、なぜ、そのようにするのか、を、書くようにしていたので、 何かの参考になるかもしれません。 あと、スタイルに関しては 『プログラミング作法』(書籍ですが)を みるのがいいでしょう。オンラインでは こちらなんか も結構いいです。 ■はじめに ■ ソース・ファイル ■ソース中の特殊文字コード ■動作

  • 技術レポート「Windowsネイティブプログラムのエラー解析」|ソフテックだより|株式会社ソフテック

    「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。 さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。 ソフテックだより(発行日順)のページへ ソフテックだより 技術レポート(技術分野別)のページへ ソフテックだより 現場の声(シーン別)のページへ Windowsプログラム(C/C++)の厄介な問題のひとつに、アプリケーションエラーがあります。 最近では.NET Framework上で動作するマネージドプログラム(※1)のプログラムが増えてきているため、アプリケーションエラーが発生する可能性は低いと思いますが、まだまだ現役のネイティブプログラム(※2)は多いため、避けては通れない問題です。 そんな中、先日、私にアプリケーションエラーの調査依頼があり、担当することになりました。しかし、数年振り

  • C言語の全角文字コメント行がコンパイルエラーを起こすことがある - 生物物理計算化学者の雛

    エラーを引き起こすコメント行 とあるC言語のプログラムを Windows 上の Visual Studio 2008 で編集・作成し、完成したソースコードを Linux マシンにコピーし gcc でコンパイルしてデータ処理を実行という流れで作業を行っていました。 その際に、ある全角文字を含むコメント行が存在するとエラーが生じるという現象に遭遇しました。 このエラーを再現するプログラムは以下のようなものです。 #include <stdio.h> int main(void) { int n = 10; // n の値により分岐可能 if(n > 5){ printf("Large\n"); }else{ printf("Small\n"); } return 0; } このソースコードは、Visual Studio上では何の問題もなくコンパイル、実行できます。 しかしながら、Linux

    C言語の全角文字コメント行がコンパイルエラーを起こすことがある - 生物物理計算化学者の雛
  • 大学のC言語の授業で1回休んだら詰んだwwwwwww : IT速報

    1:風吹けば名無し@\(^o^)/ 2016/04/26(火) 23:57:46.84 ID:L37/gTWB0.net

    大学のC言語の授業で1回休んだら詰んだwwwwwww : IT速報
    kiyo_hiko
    kiyo_hiko 2016/05/05
    Cじゃないけど (defun ryougae (amount &rest units) (if (null units) nil (progn (let* ((unit (car units)) (next (mod amount unit))) (format t "~a yen x ~a~%" (car units) (truncate amount unit)) (apply #'ryougae next (cdr units)))))) (ryougae 2328 500 100 10 5 1)
  • GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ

    4月27日 と 28日 のエントリーに、確率統計の再勉強中であることを書いた。高校時代から思っていたのだが、答えの正確性を担保するものがないことに、つらつら不満を感じた。問題集だったら巻末に答えが載っているが、現実に直面する問題にはそういうものはないから、間違えたら間違えっぱなしじゃないかということである。そして人間は必ず間違いを犯す存在なのだ。 のっけから話はズレるが、その点、複式簿記ってすごいですよ。貸借平均の原理というのに基づいて、間違いを検出するシステムが構築されている。あれも間違いなく人類の偉大な知的遺産の一つだと思っている。もっと勉強せねばと思いつつ果たしていない。 スポンサーリンク 話を戻して、高校時代に比べて今の自分は無駄に年を取ったわけでなく、ちっとは知識を蓄積しているはずだ。すぐに思いつくのは、簡単なプログラミングによってシミュレーションをすることだった。しかしマシンの

    GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ
    kiyo_hiko
    kiyo_hiko 2016/05/01
    プログラムはさっぱりわからん…VBAしか書けないので、すごいとしか
  • C/C++のとんだ落とし穴(ハマっちまったよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    とあるC++コードがコンパイルエラーするんですが、原因がまったく分からなかったんですよ。「そんなバカな?!」という感じ。しばらくハマってしまいましたよ。 結局、C++でもCでも同じことが起きることが分かりました。次は、僕が遭遇したのと同じ現象が起きるC言語のソースコードです。 // -*- coding: sjis -*- // strange.c struct ThreeNums { int x; // 負の数も指定可能 int y; int z; }; int total(struct ThreeNums nums) { return nums.x + nums.y + nums.z; } コンパイルすると: $ type tdm-gcc tdm-gcc is aliased to `/c/Installed/TDM-GCC-64/bin/gcc.exe' $ tdm-gcc --ve

    C/C++のとんだ落とし穴(ハマっちまったよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Windowsアプリケーションでprintf: 晶紀の館 第2別館

    (前回までのあらすじ) Windowsアプリケーション(GUIプログラム)なのに、実行結果をコマンドプロンプトに表示しなければならなくなった。 Windowsアプリケーションでは、標準入出力が何処にも割り当てられていないので、 printf("Hello, World!"); としても何処にも表示されません。 “何処にも割り当てられていない”が表示されない原因ならば、プログラム上で何処かに割り当ててしまえば万事OKです。 標準入出力の設定は、freopen()関数で行えるのですが、Windowsアプリケーションの場合は、その前にAllocConsole APIを呼ばなければならないことになっているようです。 ::AllocConsole(); // コマンドプロンプトが表示される freopen("CON", "r", stdin); // 標準入力の割り当て freopen("CON",

    Windowsアプリケーションでprintf: 晶紀の館 第2別館
    kiyo_hiko
    kiyo_hiko 2016/01/19
    "Windowsアプリケーション(GUIプログラム)なのに、実行結果をコマンドプロンプトに表示しなければならなくなった" "AttachConsoleを使用します" freopen("CON", "w", stdout)
  • 「日本のコスプレはユニークすぎる」 外国人から見たコミックマーケット89の反応まとめ : 海外の万国反応記@海外の反応

    引用:https://boards.4chan.org/a/thread/135375509 https://goo.gl/yh7W2w https://goo.gl/mg34ad スレッド「コミックマーケット89総合」より。

    「日本のコスプレはユニークすぎる」 外国人から見たコミックマーケット89の反応まとめ : 海外の万国反応記@海外の反応
    kiyo_hiko
    kiyo_hiko 2016/01/01
  • りんかい線、冬コミ(C89)の記念一日乗車券を発売 カタログイラストをデザイン - はてなニュース

    東京・りんかい線は12月15日(火)、同人誌即売会「コミックマーケット89(C89)」の開催に合わせた記念一日乗車券を発売しました。券面のイラストは、コミックマーケット89のカタログ(冊子版)と同じデザイン。来場の記念にもなります。販売は2,000枚限定で、大人券のみ。価格は700円です。 ▽ http://www.twr.co.jp/info/2015/ticket_comicmarket89.html 記念一日乗車券は、りんかい線の全線(新木場~大崎間)を1日中乗り放題で利用できます。有効期間は、購入した日から2016年8月31日(水)まで。りんかい線各駅の有人改札口(大崎駅を除く)でのみ販売しています。自動券売機で販売している一日乗車券は購入した当日のみ有効で、デザインも異なります。 コミックマーケット89は、東京ビッグサイト(東京都江東区)で2015年12月29日(火)から12月3

    りんかい線、冬コミ(C89)の記念一日乗車券を発売 カタログイラストをデザイン - はてなニュース
    kiyo_hiko
    kiyo_hiko 2015/12/21
    2000
  • C/C++ Development Environment for Emacs

    In this guide, I will help you to setup an efficient working C/C++ environment. Despite looking long, the setup is short and easy (mostly copy/paste Emacs Lisp code into your init.el); most of the guide are explanations and demonstrations of many useful features. Following this guide, you should be able to browse the Linux kernel source tree inside Emacs effortlessly, such as jump to definition/re

    C/C++ Development Environment for Emacs
    kiyo_hiko
    kiyo_hiko 2015/08/19
    つよそう
  • Artistic Style

    下記は astyle 1.15.3 の astyle.html を適当に日語化してみたものです。 Artistic Style 1.15.3 C , C++ , C# , Javaソースコード用 フリー で速くて小さい自動整形ツール by Tal Davidson, Israel (E-mail: davidsont@bigfoot.com) Artistic Style は C, C++, C#, Java のソースコードのインデントや整形を行える。 ソースコードをインデント付けするとき、プログラマはインデントに合わせて空白とタブ の両方を用いやすい。さらに、エディタによってはデフォルトでタブキーが押されると空白を挿入したり、また(例えばEmacsでは)行中のコードの手前に自動で空白を置いたりあるいは段付けに今までタブだけを使用したコードに空白を挿入したりして行を整えたりする。 ソース

  • 局所変数,大域変数,有効範囲

    | 局所変数とその有効範囲 | ブロックの入れ子による有効範囲の限定 | 大域変数とその有効範囲 | 関数の仮引数の有効範囲 | 演習問題 | 局所変数とその有効範囲 そもそもプログラミング言語で変数を使うためには, 値を格納する場所をメモリ上に確保し, その変数名でそこにアクセスできるようにしなければなりません. C言語では変数の定義でそれを行います. これについて説明するために, プログラミングAで出てきた階乗を計算するプログラムを 再びここで挙げてみましょう(ただし関数プロトタイプなどを追加してあります). #include <stdio.h> int factorial(int); int main(void) { int n, fac; printf("n="); scanf("%d", &n); fac=factorial(n); printf("factorial = %d\

    kiyo_hiko
    kiyo_hiko 2015/04/13
    Cはブロックがレキシカルスコープを持つということ。次章をみるとstaticは無限エクステントを実現するために"静的領域"に置かれるが、これはmalloc/freeで使うヒープとは別物みたい