[C言語入門] コンパイル〜文字列の出力まで

  • これからC言語を学び始めたい方向け
  • C言語のコンパイラを入れて、”Hello World”を表示する簡単なプログラムを作るまで

環境構築: コンパイラ(gcc)のインストール

  • C言語はコンパイラのインストールのみでOK

Cent OSの場合

1
$ yum install gcc

macOSの場合

  • 初めからgccコマンドが利用できました

実装

  • HelloWorldを表示させるまで

Cプログラムのコンパイル

  • C言語で書いたプログラムをコンピュータが理解できる言語に変換することで実行可能になる

    • この変換をコンパイルという
  • gcc( GNU Compiler Collection(gcc)

    • フリーのコンパイラ
    • 主なオプション
      • -g (コンパイル,リンク時)
        • コンパイル,リンク時にDEBUG情報を付加する.dbx,gdbなどのデバッガ を使用するときに必要.
      • -c (コンパイル時)
        • コンパイルのみ行う(オブジェクトファイルを生成する)
          ex: gcc -c test.c   → test.oを生成
      • -o test.o (コンパイル時)(または-o test(リンク時)
        • コンパイルして,その結果をtest.oとする.または,リンクしてその 結果をtestとする.省略時は,-cがついていればtest.o (オブジェクトファイル),-cがついていなければa.out(実行ファイル).
        • ex: gcc -c test.c -o test2.o  →test2.oという オブジェクトファイルを生成

文字列の出力

  • C言語における文字列の出力方法
    • printf 書式
      1
      printf(“書式文字列”, 変数1, 変数2, ・・・)
    • 変数から文字列 x 3を表示
      1
      printf("%s%s%s", str1, str2, str3);
    • 改行コード \n
    • printf関数を用いるには<stdio.h>っというヘッダファイルを取り込む必要がある

Cプログラムの頭につける”#include <studio.h>”について

  • #include <studio.h>
    • #include <stdio.h>はおまじないじゃないぞ。
    • <stdio.h>というヘッダーファイル
      • 標準Cライブラリと呼ばれる”ライブラリ”
      • 汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたもの
        • 簡単にいうと説明書をたくさん保管してある図書館
          <stdio.h>とは
    • 説明引用
      1
      2
      基本的に、関数はプログラム内で定義しないと使えません。もちろん、printf()だって関数ですから、本来であればプログラム中で定義しないと使えないわけですが、頻繁に使う関数は前もって定義してまとめておいていつでも引っ張ってこれるようにした方が効率がいいわけです。
      それを実現したのが”ライブラリ”と呼ばれるファイルです。

C言語における関数の作り方

  • 関数名の前には戻り値の型を指定
  • 返す値がなければ型の指定の代わりに「void」句を記述。
  • 戻り値ありの場合
    1
    2
    3
    4
    型名 関数名(型名 引数1, 型名 引数2, ・・・) {
    処理
    return オブジェクト
    }
  • 戻り値なしの場合
    1
    2
    3
    void 関数名(型名 引数1, 型名 引数2, ・・・) {
    処理
    }
  • 引数には変数やポインタ、構造体の実体のように処理で使用するオブジェクトの型と引数名を記述

プログラムを開発

  • ファイルを生成

    1
    touch sample.c
  • sample.cを編集

    • 今回は返す戻り値が無いのでvoid型
      1
      2
      3
      4
      #include<stdio.h>
      void main() {
      printf("Hello World\n");
      }

      コンパイル

  • gccコマンドを実行

    1
    gcc -o sample sample.c
    • 指定した名称のファイルが生成された
      1
      2
       ls
      sample.c sample
  • 実行

    1
    2
    # ./sample
    Hello World

参考

@EventEmitter @Input @Output @ViewChild ACM AMP API Gateway AR AR.js AR.js Studio AWS AWS Amplify AWS Budgets AWS Cost Explorer AWS SDK for JavaScript AddThis Adobe XD Alexa Amazon CloudWatch Amazon Honycode Amazon SNS Android Angular Angular Material AngularFire AppSync Augury C CDN CI/CD Cloud Craft Cloud9 CloudFormation CloudFront CloudTrail Cognito Cost Anomaly Detection Cubase ai Cubasis LE DTM Disqus DynamoDB Elgato HD 60S Firebase Firebase Hosting Former2 Github Github Actions Github.com GithubEnterprise GithubPages Google Chrome Google Cloud Shell GraphQL Hexo Hosting IAM Ionic JSON JavaScript LadioCast Logging LowCode MFA MS Authentication MacBook Pro 16 Mind Node NETDUETTO Netflix Party Netlify Network NoCode Observable PO PdM Promise RPA ReactiveForm Recognition Route53 S3 SAM(Serverless Application Model) SAR SSL SYNCROOM Schematics ScrumInc Serverless Service Siri Sitemap Spark AR Steinberg UR44C Teams Touch Cast Studio Treetable TypeScript UI UI Bakery WAF WAFv2 WEB Page Dev WEB会議 WebAR WebSocketAPI Webhook Windows Power Automate Wireshark aot async/await aws config cloud9 display.land draw.io e2e test filter() forkJoin() google search console hexo-generator-amp iOS iPad Pro iPhone icarus map() mat input mat tree mat-checkbox mat-input mat-selection-list mmhmm ngFor plantUML popIn Aladdin2 then() vscode ”global is not defined” らくがきAR アジャイル アジャイル開発 クロスプラットフォーム ショートカット スクラム スクラム開発 テレワーク ファイル操作 ブラウザ型IDE プロダクトオーナー プロダクトマネージャー プロトタイピング リモートセッション 共同開発 双方向データバインディング 待ち合わせ処理 認定スクラムマスター 静的WEB Hosting 静的WEBサイトHosting
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×