1. ホーム
  2. c

[解決済み] C言語でのULONG_MAXの宣言

2022-02-05 19:07:44

質問

についていろいろ調べています。 ULONG_MAX と宣言し、その方法を探っているのですが、どうもうまくいきません。私はヘッダーを使用して #include <stdio.h>#include <limits.h を作成します。 ULONG_MAX を働かせます。については特に何もありません ULONG_MAX ネット上では、それが使いにくさを生んでいます。を使っているような気がします。 ULONG_MAX が間違っている。

質問 : を宣言する方法 ULONG_MAX

サンプルコード :

#include <stdio.h>
#include <limits.h>

main(){
  ULONG_MAX number;

  return 0;
}

エラー :

gcc version 4.6.3

main.c:4:1: warning: return type defaults to 'int' [-Wimplicit-int]
 main(){
 ^~~~
main.c: In function 'main':
main.c:5:13: error: expected ';' before 'number'
   ULONG_MAX number;
             ^~~~~~
main.c:6:3: error: 'num' undeclared (first use in this function)
   num = ULONG_MAX;
   ^~~
main.c:6:3: note: each undeclared identifier is reported only once for each function it appears in

exit status 1

使っているコンパイラです。 Repl.it

解決方法は?

ULONG_MAX は型ではなく、最大値です。 に対して許容される unsigned long タイプで、通常、次のように定義されます。

#define ULONG_MAX 0xFFFFFFFFUL

つまり、意味的には何の違いもないのです。

ULONG_MAX number;

と、明らかに不正確なものがあります。

42 number;

を行うために 使用 のような値になります。

unsigned long bigVal = ULONG_MAX;