タグ

cに関するkenjiro_nのブックマーク (154)

  • 転送中

    リダイレクトします 以前ここにあったブログは、現在 http://news.pineapple.cc/ にあります。 リダイレクトしますか。

    kenjiro_n
    kenjiro_n 2010/02/04
    id:entry:19080927で紹介されていた「特殊なC言語入門」なるものを連載しているが、デザインが目に優しくないのもある上カテゴリわけがないので読みにくい。/id:entry:25826836に別途転載された。
  • 特殊なC言語入門 | quaternionの日記 | スラド

    完成したら、順番どおりにポイントするようなページをどこかに作ってください。Blogが逆順になるのはやむを得ませんが、連続表示しておいて真ん中に違う記事があったりすると、「あぁ、これは関係ないんだ」とスキップした拍子に、短いものもスキップしてしまう。「3」とか。各記事ごとに表示するリンク集があれば、タブで全部一気に開いて、順番に読む、と言う手が使える。 i++が駄目だと言う割には ++i を使っている。 i+=1; と書くべきなら、++i だって i+=1 にするべきじゃない?特に「8」の例は i++ だろうが ++i だろうが関係ないんだし。 逆に言おう。i++ や ++i は止めるべきではない。それらは 「アセンブラを教える時に」大事な概念だ(つーか論理回路を理解するときに大事)。 C言語に限らないが、あるプログラミング言語は、そのプログラミング言語だけを教える事だけしか念頭におかない、

    kenjiro_n
    kenjiro_n 2010/02/04
    id:entry:18541749の紹介。むしろアセンブラをはじめとした他言語を覚えるためのきっかけ作りが大切という奥山氏のコメントが主。
  • やる夫と学ぶプログラミング言語 C | スラド デベロッパー

    AA(アスキーアート)を用いて歴史上の出来事・ゲームの内容・調理法など様々な内容をストーリー形式で紹介するやる夫シリーズに、プログラミング言語Cを紹介するスレッドが出ていたようだ(まとめサイト第1話、第2話、第3話、最終話:プログラムの内容については第2話から)。 内容はprintf/scanfを使った標準入出力、if/while、switch、関数はmain()のみなどポインタ以前のC言語について解説したもの。main()のみだが、初心者に変数がグローバル変数だけと思わせるような筋、stdio.hをインクルードする理由を解説しない点についてはタレこみ人はどうかと思うが、C言語のとっかかりとしてコミカル(若干)に解説してるものとしては面白い試みだと思う。

    kenjiro_n
    kenjiro_n 2010/02/01
    どこかでid:entry:18344619を見たことがあると思ったがこれか。はてブで話題になったのが年明け後というのもちょっと意外ではあるけど。ここでは内容に即してタイトルを「やる夫と~」と修正している。
  • 全角文字の先行バイトかを確認する方法は?

    [戻る] TM 2004/08/09(月) 02:58:05 再びお世話になります。 VC6でMFCダイアログベースの製作を行っています。 CString型の文字列(buf)の左側から、指定された文字数を取り出す際に、 その文字数で取り出すと全角文字をまたいでしまう場合はその全角文字の 手前で取り出したいのです。そこで、 CString buf="!プログラミング!"; //これから6文字を取り出す。「!」は半角です。 if( _ismbblead(buf[6]) != 0 ) MessageBox(buf.Left(5)); else MessageBox(buf.Left(6)); のような記述をしているのですが、全角文字など関係なしに表示されて しまいます。上記の記述の場合ならば「グ」は表示されないはずなのに、 「ロ」の後に変なものがついてきてしまいます。こ

    kenjiro_n
    kenjiro_n 2010/01/29
    文字列途中での判断を行いたい場合には_ismbblead関数ではなく_ismbslead関数を使う。
  • _ismbslead, _ismbstrail

    kenjiro_n
    kenjiro_n 2010/01/29
    単体でのチェックを行う_ismbblead関数は知っていたがこの文字列の途中のバイトをチェックする関数は知らなかった。
  • 組み込みソフトウェアの開発手順を理解する ―― C言語でマイコンを制御するために不可欠

    ここでは,組み込みシステムで用いられるソフトウェアの開発環境についての基礎を説明します.また,C言語による開発のターゲットとなるマイコンの場合を具体的に説明します.(編集部) 組み込み機器のマイコンを動作させるためのソフトウェアは,組み込みソフトウェアと呼ばれています.組み込みソフトウェアの開発の方法には,特徴的な点があります. パソコンで動作するソフトウェアは,パソコンで開発されるのが一般的です.開発に使用しているパソコン上で,動作も確認できます.また,一つの開発ツールで,さまざま用途のソフトウェアを開発できます. これに対し,組み込みシステムのハードウェアでは,ほとんどの場合,開発ツールを動作させることはできません.開発にはパソコンを利用できますが,開発されたソフトウェアは,パソコンから設計対象となる機器に転送しなければ実行できません.設計対象のハードウェアは,開発のたびに異なるのが普

  • VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。a.cppb.cを作って、コンパイルするとb.c - Visual... - Yahoo!知恵袋

    VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c のコンパイル時に fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 となります。 そこで b.c に #include "stdafx.h" を追加したのですが、 fatal error C1853: 'Debug/a.pch' プリコンパイルされたヘッダーファイルは、 このバージョンのコンパイラと互換性がありません。 やはりエラーとなってしまいます。

    VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。a.cppb.cを作って、コンパイルするとb.c - Visual... - Yahoo!知恵袋
    kenjiro_n
    kenjiro_n 2010/01/16
    fatal error C1853が出るのでおとなしく拡張子をどちらかに統一したほうが往々にして早いというバッドノウハウ。
  • blog.y4su0.com is Expired or Suspended.

    kenjiro_n
    kenjiro_n 2010/01/06
    やる夫で学ぶC入門(id:entry:18344619 考えてみると妙なタイトルだ)のコメントで紹介されたEquation Solution製のgccのインストールマニュアル。そういえばCygwinのgccが古いのを気にしたことはなかったなぁ。
  • やる夫ブログ やる夫で学ぶプログラミングC言語入門 その1

    2 : ◆yLAhgX0PfU :09/12/26 22:07:50 ID:P6tTRkg5 ┏           ┓ C言語 授業中 ┗           ┛ ∧∧ l: _つ/      /;:’ ∧_∧┌ _||/ (,,゚Д゚).⊃ /      / l::゚/:(`   ,,/:|  ̄||.,o ∧_∧ . l:_つ/      / l//:’と   ||  :| .o'  ̄o , ・∀・) ⊃/       /;:’ ∧_∧┌ _||/ l: _つ/        / l:’/:(`   ,,/:|  ̄||.,o ,ヽ⊃ ./        / l//:’と   ||  :| .o'                     ∧∧ ⊃ .つ / ): /       /;:’ ∧_∧┌ _||/                      .,(Д゚ ,,)_┐ / /    

    kenjiro_n
    kenjiro_n 2010/01/06
    想定読者がこのやる夫とやらない夫みたく単位のため嫌々やっている学生みたいで色々端折っているのは仕方ない。仕事や趣味で覚えようという人には別に本を読んで欲しい。スラドがid:entry:18223505で紹介。
  • gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ

    ゆとりなもので,ついこないだまで動的リンクと静的リンクの違いがわかっていなかった.動的リンクというのが理解できた頃,そっかユーティリティライブラリは自分で共有ライブラリ作ってしまえばいいんだ,というごく当たり前のことが理解できた. UNIXをさわりはじめていた初期の頃,mecab.soのシンボリックが〜〜という用なハマりがあったのだけれど,あれは要するに実行時に共有ファイルへのパスを指定してあげればよかっただけのこと. わかると当たり前だけれど,わからないと「何がわからないのかわからない」状態に落ち込むなぁ,と改めて思いました. (幸いなことに,僕の周りには「ゆとり乙ww」と指導してくれる方々がいるので認識できるようになるのですが,少なくとも大学(院)時代はそうでなかったわけで,ゆとりスパイラルの恐ろしさを体感した気がしています.) というわけで自分用共有ライブラリの作り方をきちんと理解で

    gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ
    kenjiro_n
    kenjiro_n 2009/12/10
    WindowsのDLLよりずっと楽だなぁ。そのかわりLD_LIBRARY_PATHの問題はあるけど。
  • プログラミング言語Cについて知ろう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) プログラミング言語Cは開発の仕事に役立つ人気のあるプログラミング言語です。 この連載では、Cでのソフトウェア開発をこれから始めようという方や、使った経験はあるが勉強し直したいという方のために、基をきちんと押さえながら勉強できるような解説をしていきます。 なるべく正しい文法や作法を身に付けていただくためにJIS規格を基に解説しますが、それだけにこだわらず実際の開発で役に立つことを分かりやすくお伝えしていきます。 Cの成り立ちと規格 まずは、Cの成り立ちと規格について知っておきましょう。ちょっと堅苦しい感じがするかもしれませんが、歴史を知っているとなぜこういう書き方をするのか、こういった機能があるのかといったことが分かります。また、規格を知っているとプログラミングをしていて何か

    プログラミング言語Cについて知ろう
  • vsnprintfを使えば安心というものでもないという例:プログラマー社長のブログ:オルタナティブ・ブログ

    今日はバリバリC言語の話題です。C言語はバッファオーバーフローの問題が発生しやすく、初心者は使うな、とか、そもそも今時使うな、とか言われていますが、性能要求が高い場合や組み込みなど環境制限が厳しい場合などにはまだまだ大活躍です。さすがにWEBシステムの大規模なものなどで使うケースはほとんどないでしょうけれど。 そんなC言語も、一応バッファオーバーフローしにくいようなライブラリを使うようにいわれています。たとえば、sprintf(),vsprintf()などの代わりに、snprintf(),vsnprintf()を使うという感じです。'n'がつく方は、格納先のサイズを指定できるのでバッファオーバーフローを防ぎやすいのです。 ところが、あるシステムでこの部分でメモリーアクセス違反で死ぬ現象が発生しました。デバッガで確認すると、vsnprintf()で死んでます。格納先バッファのサイズなどは問題

    vsnprintfを使えば安心というものでもないという例:プログラマー社長のブログ:オルタナティブ・ブログ
  • Visual C++ 2005におけるscanf()に対する警告を抑制する方法

    以前、「scanf()のワーニング(Visual C++ 2005)」で書いたことなんですが、なんか微妙にヒット数があるみたいなので適当に書き直してみる。 偶には微妙にためになることも書いておかないとね・・・ 例えば次のような簡単なコードを書いてみたとします。 /****************************************************************************** * scanf_example.c *****************************************************************************/ #include <stdio.h> int main( void ) { int i; printf( "整数値を入力してください > " ); scanf( "%d", &i );

  • C++, strcpy の warning. - 教えて!goo

    VC2005 Express Edition を使ってます。 #include <iostream> #include <string> using namespace std; int main() { char str[10] = "hello"; strcpy(str, "HELLO"); } ↑ こちらをコンパイルすると hello.cpp .\hello.cpp(8) : warning C4996: 'strcpy' was declared deprecated C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(73) : see declaration of 'strcpy' という警告が出るのはどうしてでしょうか? #include <str

    kenjiro_n
    kenjiro_n 2009/12/04
    VC++2005では使用が推奨されていないのでウォーニングが出る。これを止めるために _CRT_SECURE_NO_DEPRECATE をデファインする必要があるとのこと。