技術– category –
-
技術
C言語の配列とポインタの違いとは?メモリの視点でわかりやすく解説
メモリ領域解説シリーズ 本記事は「メモリ領域解説」シリーズの1つです。 メモリ領域解説シリーズの全体像はこちら C言語を学んでいると、よく出てくる疑問があります。 配列とポインタって何が違うの? 例えば次のコードです。 int arr[3] = {1,2,3}; int... -
技術
C言語のスタックフレームとは?関数呼び出し時のメモリ構造を図でわかりやすく解説
メモリ領域解説シリーズ 本記事は「メモリ領域解説」シリーズの1つです。 メモリ領域解説シリーズの全体像はこちら 関数を呼び出すと、スタック領域にはどのようなデータが積まれるのでしょうか。 C言語では関数呼び出しのたびに、スタック上に**スタック... -
技術
メモリレイアウトまとめ|メモリレイアウトからポインタまでtext・data・bss・heap・stackを体系的に理解する
メモリ構造をまとめて理解したい 先輩、メモリ関連の勉強をしたいのですがどこから勉強すればよいか分かりません! そうだね。このページではメモリ構造の全体像と、メモリ構造解説シリーズの紹介をするよ。 C言語を学んでいると、 text領域とは何か data... -
技術
static変数とは?C言語のメモリ配置とグローバル変数との違いをわかりやすく解説
メモリ領域解説シリーズ 本記事は「メモリ領域解説」シリーズの1つです。 メモリ領域解説シリーズの全体像はこちら 先輩、static変数って普通の変数と何が違うんですか? 一番大きな違いは 寿命(ライフタイム) なんだ。 寿命? 普通のローカル変数は 関... -
技術
スタック領域とは?C言語のStackの仕組みとヒープとの違いを解説
メモリ領域解説シリーズ 本記事は「メモリ領域解説」シリーズの1つです。 メモリ領域解説シリーズの全体像はこちら C言語のプログラムでは、メモリは複数の領域に分かれて管理されています。 例えば次のような領域があります。 text領域:プログラムのコー... -
技術
登場人物の紹介 「エンジニアくん」と「初心者さん」|エンジニアノートの解説スタイル
このブログ「エンジニアノート」では、技術的な内容をできるだけ分かりやすく解説するために、エンジニアくんと初心者さんの会話形式を取り入れています。 メモリ領域やC言語、エンジニアのキャリアなど、技術の話はどうしても難しくなりがちです。 そこで... -
技術
スタートアップコードとは?データ領域とBSS領域はどのように初期化されるのか
スタートアップコードとは?(概要) スタートアップコードとは、main() が呼ばれる前に実行される初期化コードです。 スタートアップコードは、 スタックポインタ初期化 データ領域のコピー BSS領域のゼロクリア main() 呼び出し を行います。 データ領域... -
技術
データ領域(.data)とBSS領域(.bss)の違いとは?ROMとRAMの関係を実務目線で解説
データ領域(.data)とBSS領域(.bss)の違い(概要) 項目データ領域(.data)BSS領域(.bss)初期値ありなしRAM配置されるされるROM保存するしない起動処理コピーゼロクリア主な影響ROM消費RAM消費 データ領域(.data)とBSS領域(.bss)の違いは、初期値の有無です... -
技術
割り込みとRTOSなし構成の違いとは?設計思想の本質を整理する
割り込み処理解説シリーズ 本記事は「割り込み処理解説」シリーズの1つです。 割り込み処理解説シリーズの全体像はこちら 割り込みとは何か?ポーリングとの違いから理解する【組み込み入門】 割り込み処理でやってはいけないこと5選|組み込み設計の落と... -
技術
割り込み優先度設計の考え方|リアルタイム性を壊さないために
割り込み処理解説シリーズ 本記事は「割り込み処理解説」シリーズの1つです。 割り込み処理解説シリーズの全体像はこちら 割り込みとは何か?ポーリングとの違いから理解する【組み込み入門】 割り込み処理でやってはいけないこと5選|組み込み設計の落と...