LINUX.ORG.RU

Компиляция кода на С++


0

2

[code=c++] include <cstdlib> #include <iostream> #include <stdio.h>

int i=0;

int j=0;

int main (int i, int j);

{ (cin>>i);

if i<=10;

i=i+10;

else j=i;

return i; } int wc(int i,int j) { cout<<(i);

return EXIT_SUCCESS; } [/code]

Вот. Решил заморочится. Как я понимаю, компилятор ругается на обьявление функции main. 10 C:\Dev-Cpp\main.cpp expected unqualified-id before '{' token .

Внесу ясность. Это компилит Dev C++. Дома GCC. В общем наведите на ум. Заранее спасибо.


> int main (int i, int j);

Точка-с-запятой тут лишняя.

Manhunt ★★★★★
()

что-то спросить хотел?

прототип функции main есть

int main (int argc, char *argv[])
anonymous
()

int main (int i, int j)

Надо. иначе это будет восприниматься как прототип функции

Dudraug ★★★★★
()

Насчёт прототипа уже сказали. А вообще откуда такая жесть ?

runtime ★★★★
()
Ответ на: комментарий от Dudraug

В простой сишке лучше все же int main(void)

в простой сишке функция с сигнатурой void f() является функцией с переменным набором параметров, а не функцией без параметров: функция без параметров записывается исключительно как void f(void)

jtootf ★★★★★
()

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

1  #include <sys/types.h>   
2  #include <sys/socket.h>   
3  #include <netinet/in.h>   
4  #include <netdb.h>   
5  #include <memory.h>    
6  #define SRV_PORT 1234   
7  #define BUF_SIZE 64   
8  #define TXT_QUEST "Who are you?\n"    
9  main () {  
10    int s, s_new;  
11    int from_len;  
12    char buf[BUF_SIZE];  
13    struct sockaddr_in sin, from_sin;   
14    s = socket (AF_INET, SOCK_STREAM, 0); 
15    memset ((char *)&sin, '\0', sizeof(sin)); 
16    sin.sin_family = AF_INET; 
17    sin.sin_addr.s_addr = INADDR_ANY;  
18    sin.sin_port = SRV_PORT;  
19    bind (s, (struct sockaddr *)&sin, sizeof(sin));  
20    listen (s, 3);  
21    while (1) { 
22      from_len = sizeof(from_sin);  
23      s_new = accept (s, &from_sin, &from_len);  
24      write (s_new, TXT_QUEST, sizeof(TXT_QUEST));  
25      from_len = read (s_new, buf, BUF_SIZE);  
26      write (1, buf, from_len);  
27      shutdown (s_new, 0);  
28      close (s_new);  
29      };  
30    } 
дальнейшее обсуждение

fads: 3.14здец
fads: ты этот файл компиляешь?
xx: да а что?)
fads: или скопипастил и вставил в *.cpp ?
xx: код покажи)
xx: а то я мб не тот скинул)
fads: ничего, что у тебя номера строк внутри исходника?
xx: эм....
xx: по ним нету инструкций
xx: следовательно че с ними будет то?
fads: лучше убейся

закончил школу в этом году. одмин и программер.

fads ★★
()
Ответ на: комментарий от Dudraug

Так и я о чем

я придрался исключительно к слову лучше

jtootf ★★★★★
()
Ответ на: комментарий от Dudraug

потому, что функции с переменным число параметров в плюсах это тоже плохой стиль - поэтому и различать не требуется

и да, представь себе типичны класс с десятком гет-методов - сколько лишних букав))

annulen ★★★★★
()
Ответ на: комментарий от jtootf

>в простой сишке функция с сигнатурой void f() является функцией с переменным набором параметров

А можно к ним получить доступ?

Nakgidveef
()

да вроде как gcc и g++ ругаются для cpp файла вида

void func(void)
{
}
и
void func()
{
}
...
...
func(a);
для си фала это не так.

rg-400
()
Ответ на: комментарий от Nakgidveef

http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=/com.ibm.xlcpp8l.doc/language/ref/param_decl.htm

следовало уточнить, что сказанное выше верно исключительно для объявления функции: на определение функции накладываются куда более существенные ограничения (наличие хотя бы одного параметра, запятая, эллипсис)

jtootf ★★★★★
()
Ответ на: комментарий от fads

> #define TXT_QUEST «Who are you?\n»

write (s_new, TXT_QUEST, sizeof(TXT_QUEST));

я правильно понимаю, что sizeof(TXT_QUEST) это размер указателя?

unC0Rr ★★★★★
()

Троль жеж? На «код» смотреть жутко)))

а «wc» сразу о многом говорит

Я бы сказал, что от этого у GCC - синтаксический анализатор курит в углу...у него дёргается глаз..его жена забрала детей и уехала к маме.

m4n71k0r
()

Это хотели получить?

#include <cstdlib> // ради какой-то EXIT_SUCCESS
#include <iostream>

int wc( int i, int j ) // Зачем нужен j ?
{
  std::cout << i;
  return EXIT_SUCCESS;
}

int main()
{
  int i = 0, j = 0; // Зачем нужен чёртов j ?
 
  std::cin >> i;
  if ( i <= 10 )
    i += 10;
  else
    j = i; // ...
  return i;
}

Тест

m4n71k0r
()
Ответ на: комментарий от fads

Не обращайте внимания....это мне грибы сказали...Вдруг - это программа на бейсике...номера строчек всё-ж)...странно почему не 10 20 30 40 ... проклятая вижуал студио не «хотит» компилить программку на бейсике с синтаксисом C и подключаемыми заголовочниками из *X

*грусть*

m4n71k0r
()

> C:\Dev-Cpp\main.cpp
И вправду все говорят что там ничего не работает.

urxvt ★★★★★
()
Ответ на: комментарий от m4n71k0r

Кул.

Во прикол. Пока я собирал шкаф тут разигрался настоящий бэтл...... А за отредактированный код СПАСИБО ЛЮДИ ДОБРЫЕ!!!! Вообще слава богу что это вообще работоспособно!! Я рад.

Попробую внести смысл в данную программу... и использовать scanf вместо cin.

sCat
() автор топика
Ответ на: Кул. от sCat

НО ЗАЧЕМ!!!!

Jetty ★★★★★
()
Ответ на: комментарий от sCat

>Зто не п%ц а творческая мысль. Через час расскажу что вышло.

Только не говори - откуда.

Led ★★★☆☆
()
Ответ на: Кул. от sCat

>Попробую внести смысл в данную программу... и использовать scanf вместо cin.

Попробуй лучше... ну, стрихнин, например. Или мышьяк на крайняк

Led ★★★☆☆
()
Ответ на: Кул. от sCat

>Попробую внести смысл в данную программу... и использовать scanf вместо cin.

cin

scanf

Это все для неосиливших getchar.

Nakgidveef
()
Ответ на: комментарий от jtootf

типичны класс с десятком гет-методов

моя рука сама собой потянулась к топору

Щас тебе объяснят, что это называется «инкапсуляция» :)

V_L_A_D ★★
()

Хм

Спасибо!! Зто не п%ц а творческая мысль. Через час расскажу что вышло.

Попробую внести смысл в данную программу..

То есть изначально смысла не было? Может Вам поискать примеры творческих мыслей здесь?

IOCCC

Obfuscated code

m4n71k0r
()
Ответ на: комментарий от fads

Как бэ если писать в консольном виме, с функцией нумерации строк и копипастить мышкой, то он так и скопипастит, но номера строк не будут частью сорца.

К.О.

Dudraug ★★★★★
()
Ответ на: комментарий от unC0Rr

а в чём тогда разница между (char *) и (char[] *)?

Такие глупые вопросы задаешь

Dudraug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.