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

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

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

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

22.11.2012, 23:31. Просмотров 840. Ответов 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 не компилируется
Посмотрите здесь:
Некомпилируемый код компилируется в dev-cpp 4.9.9.2 C++
C++ Не компилируется .cpp файл в visual studio
C++ Программа компилируется в Borland 6.0 но не компилируется в Visual Studio 2008
C++ Не компилируется проект, возникают ошибки связанные с файлами .cpp
Компилируется в С++ bulder 6.0 но не компилируется в VS 2010 express C++
Не компилируется код C++
C++ Код не компилируется
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
22.11.2012, 23:34     В формате .cpp код компилируется, а в .c не компилируется #2
Перенести
C++
1
2
int *p;
int a = 0;
В начало main
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,785
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Эксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
22.11.2012, 23:45     В формате .cpp код компилируется, а в .c не компилируется #4
Цитата Сообщение от MrGluck Посмотреть сообщение
так а толку, переменные даже не используются.
Студия у меня не компилит, если расширение .c
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
22.11.2012, 23:47     В формате .cpp код компилируется, а в .c не компилируется #5
Цитата Сообщение от MrGluck Посмотреть сообщение
так а толку, переменные даже не используются.
Тем не менее, C90 не допускает смешивать объявления переменных и код. Так что эти переменные нужно либо перенести вверх, либо удалить.

aleksand, компилятор же не просто не компилирует. Он сообщает дополнительную информацию об ошибках. Почему мы должны гадать?
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,785
23.11.2012, 01:15     В формате .cpp код компилируется, а в .c не компилируется #6
Странно, С99 у меня не использует (на loop initial declaration ругается). А варнингов даже с -Wall ни одного нет.
Хотя помню, довольно давно, когда надо было человеку решить задачи на С в VS, переменные приходилось сначала объявлять, а потом инициализировать.
Что-то в интернете С90 не нашел почитать, лишь С99.
А что компиль скажет на -std=c99 ?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 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
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
23.11.2012, 07:06     В формате .cpp код компилируется, а в .c не компилируется #9
Цитата Сообщение от MrGluck Посмотреть сообщение
Странно, С99 у меня не использует (на loop initial declaration ругается). А варнингов даже с -Wall ни одного нет.
А если с "-Wall -pedantic"?
Цитата Сообщение от MrGluck Посмотреть сообщение
переменные приходилось сначала объявлять, а потом инициализировать.
Это тем более странно, что как-раз инициализация вместе с объявлением вполне допускается в C90 и более ранних версиях.
Цитата Сообщение от MrGluck Посмотреть сообщение
Что-то в интернете С90 не нашел почитать, лишь С99.
Ну C89 такой же точно. Или более ранний вариант от Керниган—Ритчи...
alsav22
5416 / 4812 / 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++
Код не компилируется C++
C++ Код не компилируется

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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,785
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 не компилируется
Ответ Создать тему
Опции темы

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