Как мне написать разные небольшие программы на C в Eclipse, каждая из которых имеет собственный main ()?

c eclipse

89 просмотра

2 ответа

Я создал один C-проект в Eclipse, после чего пытался добавить исходный файл и написать небольшую программу. Впервые проходит гладко. Но когда я добавляю другой исходный файл и пишу код внутри main () и собираю его, это вызывает некоторую ошибку.

Автор: kulst Источник Размещён: 08.11.2019 11:04

Ответы (2)


1 плюс

Допустим, у вас есть две программы:

Программа 1

#include <stdlib.h>
#include <stdio.h>


int main(int argc, char ** argv)
{
  printf("I am program 1.\n");

  return EXIT_SUCCESS;
}

Программа 2

#include <stdlib.h>
#include <stdio.h>


int main(int argc, char ** argv)
{
  printf("I am program 2.\n");

  return EXIT_SUCCESS;
}

Теперь вы хотите объединить их в одну программу.

Переименуйте их и добавьте новый main():

#include <stdlib.h>
#include <stdio.h>


int p1(int argc, char ** argv)
{
  printf("I am program 1.\n");

  return EXIT_SUCCESS;
}

int p2(int argc, char ** argv)
{
  printf("I am program 2.\n");

  return EXIT_SUCCESS;
}

int main(int argc, char ** argv)
{
  printf("I am providing program 1 and program 2.\n");

  printf("Enter 1 for 'program 1' or 2 for 'program 2' (any other key exits).\n");

  {
    int result = EXIT_FAILURE;

    int c = getchar();
    switch (c)
    {
      case '1': 
        result = p1(argc, argv); 
        break;        

      case '2': 
        result = p2(argc, argv); 
        break;

      default:
        break;
    }

    return result;
  }
}

Чтобы разделить различные файлы по модульному принципу, вы можете сделать так:

p1.h

#ifndef P1_H
#define P1_H

int p1(int argc, char ** argv);


#endif

p1.c

#include <stdlib.h>
#include <stdio.h>

#include "p1.h"


int p1(int argc, char ** argv)
{
  printf("I am program 1.\n");

  return EXIT_SUCCESS;
}

p2.h

#ifndef P2_H
#define P2_H

int p2(int argc, char ** argv);


#endif

p2.c

#include <stdlib.h>
#include <stdio.h>

#include "p2.h"


int p2(int argc, char ** argv)
{
  printf("I am program 1.\n");

  return EXIT_SUCCESS;
}

main.c

#include <stdlib.h>
#include <stdio.h>

#include "p1.h"
#include "p2.h"


int main(int argc, char ** argv)
{
  printf("I am providing program 1 and program 2.\n");

  printf("Enter 1 for 'program 1' or 2 for 'program 2' (any other key exits).\n");

  {
    int result = EXIT_FAILURE;

    int c = getchar();
    switch (c)
    {
      case '1': 
        result = p1(argc, argv); 
        break;        

      case '2': 
        result = p2(argc, argv); 
        break;

      default:
        break;
    }

    return result;
  }
}
Автор: alk Размещён: 20.08.2016 09:26

0 плюса

Eclipse не может построить ваш код, потому что вы пытаетесь поместить две main()s (т.е. две отправные точки) в одну программу. Если программа имеет несколько начальных точек, как компьютер узнает, с чего начать?

Вы должны создать другой проект, чтобы написать другую программу.

Автор: dorukayhan Размещён: 20.08.2016 08:50
Вопросы из категории :
32x32