Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2012, 17:29   #1
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию srand (time(NULL)) - компилятор ругается

Здравствуйте!
Проблема вот в чём: вызываю эту функцию, а компилятор выводит ошибку - [BCC32 Error] Main.cpp(255): E2314 Call of nonfunction, причём вроде заголовочные нужные файлы включены:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

В самой процедуре, где я вызываю эту функцию, ошибок нет - тоесть если закомментить этот вызов, прога запускается.
Ошибка в синтаксисе? Но где?
srand(time(NULL));
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.02.2012, 18:31   #2
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

srand случаем не математическая? Call of nonfunction, а дальше что?
Drugnir вне форума Ответить с цитированием
Старый 29.02.2012, 18:42   #3
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Гм, дальше..
[BCC32 Error] Main.cpp(137): E2314 Call of nonfunction
Full parser context
Main.cpp(130): parsing: void _fastcall TForm1::initF()

ну на всякий случай #include <math.h> тоже прописан..
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.02.2012, 18:55   #4
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

а если подключить #include <iostream> или #include <iostream.h>?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 29.02.2012, 19:02   #5
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Та же ошибка, и с этим хэдером..
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.02.2012, 19:32   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от ACE Valery Посмотреть сообщение
а если подключить #include <iostream> или #include <iostream.h>?
srand определён в файле stdlib.h. Он у него прописан.
Эта функция объявлена так: void srand(unsigned seed).
Но вот билдер пишет, что такой функции у него вообще нет (судя по выдаваемой ошибке). Может ошибка в инклюдах?
А не лучше ли использовать randomize() ?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.02.2012, 20:08   #7
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
А не лучше ли использовать randomize() ?
Спасибо, так и сделаю Цель была просто, чтобы каждый раз получать новые значения.

А почему не работает, я по-прежнему не знаю; в хэдерах ошибки не вижу. Я использую Embarcadero Rad Studio 2010 -быть может, они исключили какие-то функции за ненадобностью..
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.02.2012, 21:28   #8
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

не знаю, поможет ли... - на RAD XE2 эта ваша строчка не вызвала никаких возражений: ни с подключенными заголовочными файлами, ни без них.
nick42 вне форума Ответить с цитированием
Старый 29.02.2012, 21:48   #9
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
srand определён в файле stdlib.h. Он у него прописан.
И что? Не знаю, как у вас, но у меня вижуал студия 2010 компилит строку
Код:
srand(time(NULL));
при заголовках
Код:
#include <iostream>
#include <time.h>
Или с
Код:
#include <stdlib.h>
#include <time.h>
Если убрать в первом случае iostream, а во втором stdlib, то пишет
error C3861: srand: идентификатор не найден
И где бы ни был прописан srand (я вам верю, что он в stdlib), но и без него он компилит при iostream
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 29.02.2012, 22:44   #10
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Цитата:
Сообщение от nick42 Посмотреть сообщение
не знаю, поможет ли... - на RAD XE2 эта ваша строчка не вызвала никаких возражений: ни с подключенными заголовочными файлами, ни без них.
Да, видимо что-то не то у меня с этой RAD Studio или, что вернее, с этим конкретным проектом.

Также попробовала на визуал студио откомпилить прогу с использованием этой функции - всё ок.
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компилятор ругается novak3 Общие вопросы C/C++ 4 21.05.2011 01:58
Ругается компилятор.. CormiX Помощь студентам 0 14.05.2011 16:13
Sleep(1000); srand(time(0)) masashama Общие вопросы C/C++ 10 19.04.2011 16:58
srand((unsigned)time(&t)) Gula1706 Общие вопросы C/C++ 6 30.11.2010 10:37
вопрос time(NULL) Ceprey Общие вопросы C/C++ 5 07.03.2008 11:30