質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

4回答

712閲覧

c言語 コマンドライン引数

kjhoh

総合スコア4

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2023/01/24 04:36

前提

ここに質問の内容を詳しく書いてください。
c言語のコマンドラインからの仮引数をとるものの書き方として
int main ( int argc, char *argv[])
というものがあると思います。文字式の入力する場面ではこれでいいと思うのですが、数値を入力する際には、atoiやatofを使う必要があると思います。
このとき,char *argvをdouble *argv[]やdouble argv[]と書くことは不可能なのでしょうか?

実現したいこと

試したこと

一応数値入力として、double *argv[]を用いてやってみたのですが、0となりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

C の言語仕様上の規定では main

  • int main(void)
  • int main(int argc, char * argv[]) (変数名はどのような名前を使用してもよい)
  • 上述の二つの方法のいずれかと等価な方法 (別名や型調整の規則を適用して結果的に同じになればよいという意味)
  • 上述の三つの方法のいずれでもない処理系定義の方法

で書かれなければならないことになっています。

質問者が使っている処理系において「処理系定義の方法」が用意されているのであれば出来る可能性はあります。 そして大抵の場合に可能ですが、字句解析の処理をスタートアップルーチンに移すだけで手間が減るわけではないのでやる価値はあまりないでしょう。

投稿2023/01/24 05:03

SaitoAtsushi

総合スコア5444

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

引数は文字列で受けるものです。
受け取った後に変換して下さい。

投稿2023/01/24 12:24

nijinatu

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

このとき,char *argvをdouble *argv[]やdouble argv[]と書くことは不可能なのでしょうか?

不可能です。
動作が決まってることはなにをどう足掻こうが決まってる通りにしか動きません。

投稿2023/01/24 07:27

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C言語の仕様の領分なのか,「コンパイラ固有のどうのこうの~」という範囲になり得る話なのか,そこらへんは知りませんが,とにかくサポートされていない形は不可能でしょう.

投稿2023/01/24 04:40

fana

総合スコア11647

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2023/01/24 06:26 編集

> 一応数値入力として、double *argv[]を用いてやってみたのですが、0となりました。 「何らかの動作」をすることになるのでしょうけど,どうやって「あなたの所望の動作」をコンパイラなりに知らせるのか? という点を解決する手段は無いでしょう. 例えば struct X{ ... }; int main( X x ){ ... } とかコードを書くだけで「コマンドライン引数群を 適切に処理して X型のxの内容をいい感じにしてくれ」というのは無茶振りであろう,と.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問