Miyama11
@Miyama11 (Miyama 11)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

C言語を,Cpad for Borland C++Compilerでコンパイルすると警告が出ます。

解決したいこと

C言語を,Cpad for Borland C++Compilerでコンパイルすると警告が出ます。警告を無くす方法を教えてください。

例)
本の問題をC言語で書き、bcpadでコンパイルしましたが、謎の警告が出てしまいました。

発生している問題・エラー

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
13.c:
警告 W8057 13.c 40: パラメータ 'argc' は一度も使用されない(関数 main )
警告 W8057 13.c 40: パラメータ 'argv' は一度も使用されない(関数 main )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Error detected (LME2059)
Fatal: Error detected (LME1648)
Fatal: Error detected (LME1663)
Fatal: 

該当するソースコード

#include <stdio.h>
 
#define W 4
#define H 6
 
char memo[1 << (W * H)] = {0};
int queue[1 << (W * H)] = {0x000fff, 0xfff000, 0xcccccc, 0x333333};
int mask[W * (H - 1) + (W - 1) * H];
int i, j, mask_count, start, end, temp, depth;
 
int main(int argc, char *argv){
  depth = 1;
  for (i = 0; i < 4; i++){
    memo[queue[i]] = depth;
  }
  mask_count = 0;
  for (i = 0; i < W * H; i++){
    if (i % W < W - 1) mask[mask_count++] = (1 << 1 | 1) << i;
    if (i < W * (H - 1)) mask[mask_count++] = (1 << W | 1) << i;
  }
  start = 0;
  end = temp = 4;
  while (end - start > 0){
    printf("%d %d\n", depth - 1, end - start);
    depth++;
    for (i = start; i < end; i++){
      for (j = 0; j < mask_count; j++){
        if (((queue[i] & mask[j]) != 0) &&
            ((queue[i] & mask[j]) != mask[j]) &&
            (memo[queue[i] ^ mask[j]] == 0)){
          memo[queue[i] ^ mask[j]] = depth;
          queue[temp++] = queue[i] ^ mask[j];
        }
      }
    }
    start = end;
    end = temp;
  }
  return 0;
}

自分で試したこと

本の出版社に問い合わせたところ、出版社のコンパイラでは実行できるようでした。

0

1Answer

警告って

パラメータ 'argc' は一度も使用されない

のことですよね?

警告は警告であってエラーではないので、問題がない場合は無視してもまあ構わないですが、その警告が出るのを抑制したければ、main関数内の最初のほうにでも

(void)argc; // 警告抑制のため

を入れておけばよいのではないかと思います。

1Like

Comments

  1. @Miyama11

    Questioner

    @itagagaki様、
    教えて頂き、ありがとうございます。
    はい、
    警告は「パラメータ 'argc' は一度も使用されない」です。
    試してみます。
  2. @Miyama11

    Questioner

    @itagagaki様
    試した結果、警告を1つに減らすことができました。
    ありがとうございました。
    しかし、警告を無視して実行した場合、Cpadが動作を停止してしまいます。

Your answer might help someone💌