Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

В формате .cpp код компилируется, а в .c не компилируется - C++

22.11.2012, 23:31. Просмотров 812. Ответов 10
Метки нет (Все метки)

1).Подскажите почему в формате .cpp код компилируется, а в .c не компилируется
2). Как сделать так, чтобы компилировалось в .c?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main()
{
 
    char str[200]="tuta", *begin_a, *begin_b, *end_a, *end_b;
    begin_a = str;
    end_a = str + strlen(str)-1;
    begin_b = str;
    end_b= str + strlen(str)-1;
 
    int *p;
    int a = 0;
    printf("%s\n", begin_a);
 
    getchar();
    return 0;
}
Добавлено через 1 час 26 минут
Кто-нибудь может ответить на мои вопросы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 23:31     В формате .cpp код компилируется, а в .c не компилируется
Посмотрите здесь:

C++ Код не компилируется
Не компилируется код C++
Некомпилируемый код компилируется в dev-cpp 4.9.9.2 C++
дан код, не компилируется C++
C++ Не компилируется код
C++ Код не компилируется
C++ Код не компилируется
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12528 / 7090 / 797
Регистрация: 27.09.2012
Сообщений: 17,500
Записей в блоге: 2
Завершенные тесты: 1
22.11.2012, 23:34     В формате .cpp код компилируется, а в .c не компилируется #2
Перенести
C++
1
2
int *p;
int a = 0;
В начало main
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
22.11.2012, 23:40     В формате .cpp код компилируется, а в .c не компилируется #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Перенести
C++
1
2
int *p;
int a = 0;
В начало main
так а толку, переменные даже не используются.

У меня компилит. Попробуйте записать так:
C
1
int main(void)
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12528 / 7090 / 797
Регистрация: 27.09.2012
Сообщений: 17,500
Записей в блоге: 2
Завершенные тесты: 1
22.11.2012, 23:45     В формате .cpp код компилируется, а в .c не компилируется #4
Цитата Сообщение от MrGluck Посмотреть сообщение
так а толку, переменные даже не используются.
Студия у меня не компилит, если расширение .c
grizlik78
Эксперт С++
 Аватар для grizlik78
1892 / 1424 / 105
Регистрация: 29.05.2011
Сообщений: 2,980
22.11.2012, 23:47     В формате .cpp код компилируется, а в .c не компилируется #5
Цитата Сообщение от MrGluck Посмотреть сообщение
так а толку, переменные даже не используются.
Тем не менее, C90 не допускает смешивать объявления переменных и код. Так что эти переменные нужно либо перенести вверх, либо удалить.

aleksand, компилятор же не просто не компилирует. Он сообщает дополнительную информацию об ошибках. Почему мы должны гадать?
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
23.11.2012, 01:15     В формате .cpp код компилируется, а в .c не компилируется #6
Странно, С99 у меня не использует (на loop initial declaration ругается). А варнингов даже с -Wall ни одного нет.
Хотя помню, довольно давно, когда надо было человеку решить задачи на С в VS, переменные приходилось сначала объявлять, а потом инициализировать.
Что-то в интернете С90 не нашел почитать, лишь С99.
А что компиль скажет на -std=c99 ?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
23.11.2012, 02:09     В формате .cpp код компилируется, а в .c не компилируется #7
Цитата Сообщение от MrGluck Посмотреть сообщение
А что компиль скажет на -std=c99 ?
Всё бы хорошо, но это ключ от gcc, а не от Студии. MS принципиально забила на компилятор Си в Студии, просто по традиционным причинам его таскают.
MrGluck
23.11.2012, 02:21
  #8

Не по теме:

~OhMyGodSoLong~, самое интересное, что большинство студентов начинает программировать как раз с С и как раз в Студии.

grizlik78
Эксперт С++
 Аватар для grizlik78
1892 / 1424 / 105
Регистрация: 29.05.2011
Сообщений: 2,980
23.11.2012, 07:06     В формате .cpp код компилируется, а в .c не компилируется #9
Цитата Сообщение от MrGluck Посмотреть сообщение
Странно, С99 у меня не использует (на loop initial declaration ругается). А варнингов даже с -Wall ни одного нет.
А если с "-Wall -pedantic"?
Цитата Сообщение от MrGluck Посмотреть сообщение
переменные приходилось сначала объявлять, а потом инициализировать.
Это тем более странно, что как-раз инициализация вместе с объявлением вполне допускается в C90 и более ранних версиях.
Цитата Сообщение от MrGluck Посмотреть сообщение
Что-то в интернете С90 не нашел почитать, лишь С99.
Ну C89 такой же точно. Или более ранний вариант от Керниган—Ритчи...
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.11.2012, 13:27     В формате .cpp код компилируется, а в .c не компилируется #10
Цитата Сообщение от aleksand Посмотреть сообщение
Как сделать так, чтобы компилировалось в .c?
В какой среде не компилируется?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 19:14     В формате .cpp код компилируется, а в .c не компилируется
Еще ссылки по теме:

Код не компилируется C++
Не компилируется код C++
C++ Не компилируется .cpp файл в visual studio
Не компилируется код C++
C++ Не компилируется проект, возникают ошибки связанные с файлами .cpp

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
23.11.2012, 19:14     В формате .cpp код компилируется, а в .c не компилируется #11
Цитата Сообщение от grizlik78 Посмотреть сообщение
А если с "-Wall -pedantic"?
Так же компилит и без варнингов.

Цитата Сообщение от grizlik78 Посмотреть сообщение
Это тем более странно, что как-раз инициализация вместе с объявлением вполне допускается в C90 и более ранних версиях.
Возможно, проблема была лишь с переменными в циклах и впечатления отложились в памяти неправильно. Доступа проверить нет, увы.

Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну C89 такой же точно. Или более ранний вариант от Керниган—Ритчи...
С89 так же искал в паре. Находит лишь отличия от С99, а хотелось бы почитать только про С90, любопытства ради.
Yandex
Объявления
23.11.2012, 19:14     В формате .cpp код компилируется, а в .c не компилируется
Ответ Создать тему
Опции темы

Текущее время: 00:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru