タグ

C言語に関するnekoneneneのブックマーク (18)

  • オーディオアプリ開発でありがちな4つの間違い | POSTD

    ここで論じているのは、オーディオアプリの開発者が陥りがちな 4つの間違い 、 より良く開発する方法 、 問題個所の発見方法 です。主に開発者向けの内容ですが、開発者以外の方にも知っておいてもらいたいと思います。ここでは、開発者向けの診断ツールである Realtime Watchdog を紹介し、 人気のあるオーディオライブラリの調査結果 を提示します。 オーディオアプリの開発はとてつもなく楽しいです。やりがいを感じるし、創造力を発揮できる範囲が大きく広がり、ひとたび開発が終われば、 誰かがクリエイティブなツールとして使ってくれるのです! こんな分野は多くないし、この領域で働けるなんて非常に幸運だと自分でも思っています。 しかし、仕事でオーディオアプリを扱う時には深く考えなければならない部分もあります。オーディオアプリの開発者としてユーザに対する責任があるのです。大前提として、ユーザを公共の

    オーディオアプリ開発でありがちな4つの間違い | POSTD
  • 第7回 徹底予習:AI時代の組込みシステム開発のお仕事 | 組込みの輪郭 | [技術コラム集]組込みの門 | ユークエスト株式会社

    ユークエスト株式会社は2021年10月1日をもちまして、 株式会社東光高岳に吸収合併を致しました。 Webサイトは下記のURLに移転しました。 https://uquest.tktk.co.jp/ ※5秒後に移転先にジャンプします。

    nekonenene
    nekonenene 2016/05/06
    C言語で存在する『//この1行があると動く』のワケ
  • プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ

    プログラミングにはレベルの低い・高いがある。ここでいうレベルとはCPUとかストレージデバイスといった生のハードウェアに近いかという意味である。レベルが低いほど生のハードウェアを意識しなければならない。カーネルは低レベルなソフトウェアの代表である。高尚かどうかと混同されることを嫌ってか、低レイヤ・高レイヤという言い方も良くする。私はあえて混同させたくてレベルという単語を使用している。 私は元々低レベルのプログラミングの方が計算機を操ってる感があって好きだった。しかし、しばらく離れてJavaとかPythonとか高レベルなことをやっていたが、ふと低レベルのところを再び触りたくなったので、 ハッカーのたのしみ Binary Hacks Cプログラミング高速化研究班 等を読み返しながら勉強している。低レベルはちょこちょこっとチューニングするだけで演算が高速化していき、ハッカー感が得られるので楽しい。

    プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ
  • 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(上)

    「先輩,前から疑問に思ってたんですが,これ何のエラーですか」 「ああ,これはリンクのときのエラー・メッセージだよ」 「リンクって,何ですか」 「え?知らないの。最近のツールは,コンパイルだリンクだって言わないからなぁ・・・。リンクってのは,コンパイルしてできたものを全部つなげることだよ。ビルドすると,コンパイルの後にリンクまでやってるんだ」 「???。全然わかんないです。大体,ビルドとコンパイルって,やってること同じに見えるんですけど。違うんですか?」 「よし,じゃぁちょっと,腰をいれて説明しようか」 Visual StudioやDelphiなどのツールを利用してプログラムを作っていると,見えてこないのが実行モジュールができるまでのプロセスである。当たり前のことだが,ソース・コードは人間が理解できる形でプログラムを表現したものであり,コンピュータは理解できない。だからコンピュータが理解で

    先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(上)
  • [法大奥山研究室]C言語:13.2. 標準入力:argc, argv, scanf, fscanf

    13.2. 標準入力:argc, argv, scanf, fscanf 次は,標準入力です。標準入力には,コマンドラインからの入力と相手にたずねる場合の2通りがあります。 ■コマンドラインからの入力 int main(int argc, char *argv[]) { /* 体 */ } 変数 argc には,コマンドラインに入力(標準入力)された文字列の個数(argument count)が入ります。また,argv[argc] は NULLポインタ(空ポインタ)であり,argc が 0 より大きい場合,argv[0] にはプログラム名が入ります。[C99, 5.1.2.2.1](argv は「ポインタの配列」です。)例えば, % ./a.out this is a test. と実行した場合,argc = 5 となり,argv[0] には ./a.out,argv[1] には thi

    nekonenene
    nekonenene 2015/06/02
    argc, argv とは何者なのかの話
  • Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation

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

  • C++でscanfは使えない?

    お盆休みを利用してC言語の勉強をしようと思っています。 さわり程度にはわかるのですが、ポインタなどを気で理解してみようと思っています。 PCにvisual studio2013が入っているので、2013のC++プロジェクトを使って勉強していこうと思っているのですが、下記のように入力すると、scanfでエラーが出てしまいます。 #include "stdafx.h" #include <stdio.h> void main() { int n; scanf("%d",&n); } C++ではC言語の文法は全て使えると聞いていたのですが、ある程度例外もあるということなのでしょうか?それともなにか原因があるのでしょうか?

    C++でscanfは使えない?
  • 配列の動的確保

    まず、動的確保ってなんなの?って人もいるかもしれないのでその説明から始めます。 C/C++ では、配列のサイズというものは必ずコンパイル時(静的)に分かってなければいけません。 double a[10]; // OK int n; cin >> n; // キーボードから入力 double b[n]; // NG コンパイルエラーになる 配列を確保するときには a[10] のようにサイズは定数でなければならず、int n のような変数をサイズに使うことはできません。 (const int は可、変数ではなく定数だから。) 配列のサイズを実行時(動的)に決めたい場合に動的確保というの行います。 #include <stdlib.h> int n; double * b; scanf( "%d", &n ); b = (double *)malloc( sizeof( double ) * n

  • 第三回-01 初めての C/C++ プログラミング(GUIアプリケーション編)~Express Edition 対応

    初めてのGUIアプリケーション 保存時の注意 (GUI アプリケーション編) スタティックリンク 初めてのGUIアプリケーション このページでは、簡単な GUI アプリケーションの作成法を学ぶ。 ここでは、Visual C++ Express Edition を用いて .NET Framework を用いた GUI アプリケーションを作成する。 Visual Studio Community 2017に関する情報 Visual Studio Community 2017では、 「C++/CLIサポート」の追加インストールを行っていない場合、ページの内容を実行できない。 追加インストールを行うには、プロジェクト作成画面の「Visual Studioインストーラーを開く」からインストーラーを起動し、右にある「C++/CLIサポート」にチェックしてインストールする。 また、MFCアプリケーショ

  • http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/prog1-2003/lecture10.html

  • DOSプロンプト

    フォーマット指定子一覧 フォーマット指定子とは、C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する、 表示形式を指定するための記述子である。 C言語専用と思っていると、MFC(C++)のCStringクラスやjavaFormatterクラス(jdk1.5以降)にも使用されていたりして、 やはりしっかり覚えておかなくては、と思わせられることもある(詳細は異なるが)。 度忘れした際にはここを見ればよいように、よく使うフォーマット指定子をここにまとめておく。 なお、ANSI規格での全貌を知りたいときは、fprintfのリファレンス等を参照のこと。 出力フォーマット指定子 printf(),fprintf(),sprintf()などで使用する指定子である。

  • C言語で2次元配列を動的に割り当てる4つの方法 - FLYING

    2次元配列を動的割り当てしたいそんなとき,C言語ならキモくなるかも。 検索エンジンから来る人がそれなりに居るようなので,解説画像を追加しました(2014/12/05)。 各行のデータを保持する配列と各行へのポインタを保持する配列に分けて確保 おそらく最も基的なやり方。 int **matrix; int i, j, n, m; n = 100, m = 100; matrix = malloc(sizeof(int *) * n); for (i=0;i<n;i++) { matrix[i] = malloc(sizeof(int) * m); } for (i=0;i<n;i++) { for (j=0;j<m;j++) { matrix[i][j] = i * m + j; printf("%d\n", matrix[i][j]); } } for (i=0;i<n;i++) { f

    C言語で2次元配列を動的に割り当てる4つの方法 - FLYING
  • C言語講座:fgets( )とputs( )

    [読み込みモードで開く]←このソース→[印字可能な文字の数を数える] /* ソースプログラムの説明 */ /* 今日もファイルを読み込みモードで開き、各行に行番号を付けて標準出力に出力します。まず最初にこのファイルを開いて下さい。このページのソースプログラムをコンパイルしてできたexeファイルと、このファイルを同じディレクトリにおいて実行して下さい。その際、このファイルの名前を必ず、”LTest.c”にして下さい。また、このファイルをコピーアンドペーストするときは、必ず最後のリターンコードまでコピーして下さい。そうしないと、正常に動作しません。読者の方、ご指摘ありがとうございました。 前回は、ファイルから1文字読み込むライブラリ関数、getc( ) と、標準出力に1文字出力する関数、putchar( ) を、使いました。今回は、行単位で文字列を読み込む関数と、書き込む関数、fgets( )

  • GCCの最適化オプション

    郷に入っては郷に従えというが、GNU/Linuxのプログラミング環境にはまだまだ慣れない。とりあえず今のC++執筆作業には、最新のClangでコンパイルできればそれで用が足りるので、Clangのビルドが楽なGNU/Linux環境は悪くない。欲を言えばlibc++もまともに動くようになってほしい。Ubuntu 12.10でlibsupc++を使ってlibc++をビルドしてみたところ、RTTI周りのABIに問題があるらしく、virtual関数呼び出しすらできなかった。 しかし、GNU/Linuxにおけるプログラミングはどうにも学ぶことが多すぎる。GNUのgdbの使い方もそろそろ覚えたいし、Autotoolsの使い方も覚えたいものだ。幸い、GNU/Linuxで一般的なテキストエディターであるVimは、特に何も学ばなくても使えるので楽だ。たかがテキスト編集作業に、多数のキーボードショートカットを

  • C言語講座:書式付き出力と書式指定子

    [書式付き入力と書式指定子]←このソース→[色々なデータ型の最大値、最小値] /* 書式指定子の詳細説明 */ /* 今日は、書式付き出力で使用される書式指定子について詳しく学びます。書式付き出力を行う標準ライブラリ関数には次のものがあります。 prinft( ), fprintf( ), sprintf( ), vprintf( ), vfprintf( ), vsprintf( ) 書式付き出力で使われる書式指定子は次の形をしています。 %[フラグ][フィールドサイズ][.[精度]][引数サイズ] 変換文字 フラグ:指定子を修飾。いくつ付けても良い。

  • 変数の型

    型ごとに割り当てられるサイズが異なり、サイズに応じて型に格納可能な値の範囲が設定されます。例えば char 型の場合は 1 バイトですので char 型の変数には -128 ~ 128 の値しか格納できません。それに対して int 型の場合は 4 バイトですので int 型の変数には -2147483648 ~ 2147483647 の値が格納できます。 char 型は整数型の 1 バイトの型ですが、アルファベット 1 文字を格納するのに適した型のため文字型と呼ばれています。また short int 型は short 、 long int 型は long と記述しても構いません。 なお、型に対してどれだけのサイズを割り当て、結果としてどれだけの値を格納できるのかについては厳密に規定はされておらずコンパイラなど開発環境によって異なる場合があります。上記はあくまで目安とお考え下さい。 unsi

    変数の型
  • 5.4 整数除算 - プログラミング言語 C の新機能

    5. 整数型 今まで C 言語の整数型は char、short int、int、long int 型がありましたが、今回からこれに加え _Bool 型と long long int 型が使用可能になります。章ではこれら新たに加わった二つの整数型と変更された整数の除算ルールについて説明します。 5.1 _Bool 型 多くの人が使っていたけど、言語仕様の中では規定されていなかった...。今度の新しい C 言語では、それが仕様に取り込まれました。それとは bool 型です。多くの人が bool や _bool, BOOL, Bool などと typedef あるいは define をして使用していますが、とうぜん各人によってその名前はバラバラでした。したがって他人の作ったライブラリを利用するとき定義が衝突したりしり、ソースプログラム上で表記の統一がとれなくなったりして、問題が発生しました。

    nekonenene
    nekonenene 2015/05/10
    INT_MAX, long long int など
  • Arduino のすすめ

    1 はじめに Arduino という名前を聞いたことがあるかもしれません。最近流行っているみたいだなと思われているかもしれません。ここでは、そんな Arduino について紹介したいと思います。 1.1 Arduino ってなに? Arduino というのは、簡単に書くと マイコンボード (Arduino マイコンボード) 開発環境 (Arduino IDE) の2つがセットになったものです。マイコン?難しそう。と、思われるかもしれませんが、そんなことがないように、うまく工夫されているのが特徴です。 1.2 電子工作もプログラミングもしたことがないんですけれど 電子工作をしたことがなくても大丈夫です。Arduino と、ジャンプワイヤという、ピンが両端についた電線、ブレッドボードという穴のたくさん並んだ板、使いたい電子部品を用意すれば、半田付けなしに楽しめます。もちろん、ブレッドボードを使

  • 1