Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем нужны h файлы. 
:(
    Опции темы
TDM
Дата 24.9.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



Всё же можно описать в cpp и инклудить их. Или h файлы нужны в особых случаях или просто чтоб отделить описание и сами функции и методы?
PM MAIL ICQ   Вверх
UserNet
Дата 24.9.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 13.12.2006
Где: Новосибирск

Репутация: нет
Всего: 3



Ты прав, считается что использование h файлов тон хорощего программирования.

Код

#ifndef DNSDOE_H
#define DNSDOE_H

extern void dnsdoe();

#endif




Код

#include "substdio.h"
#include "subfd.h"
#include "exit.h"
#include "dns.h"
#include "dnsdoe.h"

void dnsdoe(r)
int r;
{
 switch (r)
  {
   case DNS_HARD: substdio_putsflush(subfderr,"hard error\n"); _exit(100);
   case DNS_SOFT: substdio_putsflush(subfderr,"soft error\n"); _exit(111);
   case DNS_MEM: substdio_putsflush(subfderr,"out of memory\n"); _exit(111);
  }
}


PM MAIL   Вверх
vinter
Дата 24.9.2008, 14:35 (ссылка) |   (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(TDM @  24.9.2008,  15:13 Найти цитируемый пост)
Всё же можно описать в cpp и инклудить их

в туалет можно также ходить в кладовку, но цивилизованные люди ведь так не делают, правильно?


--------------------
Мой блог
PM MAIL WWW   Вверх
Lazin
Дата 24.9.2008, 14:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



smile 
срр файлы инклудить нельзя, срр файлы - компилируются, а Н - нет

Добавлено @ 14:40
file1.cpp

Код

void foo()
{
    printf("lol");
};




file2.cpp

Код

#include<file1.cpp>

int main()
{
    foo();
}


после компиляции этого у нас будет 2 единицы трансляции в каждой из которых будет своя функция foo

Это сообщение отредактировал(а) Lazin - 24.9.2008, 14:41
PM MAIL Skype GTalk   Вверх
HappyLife
Дата 24.9.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Lazin, Необязательно, добавлять к проекту автоматически file1.cpp. Достаточно оставить лишь file2.cpp и делов.

Но на самом деле, просто начни программировать на С++ и ты поймешь их необходимость.
PM MAIL   Вверх
TDM
Дата 24.9.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



HappyLife, 
Ну я начал и до сих пор не понял, раньше кодировал компутерные программы на делфе дык там только пас и в нём всё. Наскоко я понял Х файлы надо чтобы функции не компилились несколько раз?
PM MAIL ICQ   Вверх
HappyLife
Дата 24.9.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



TDM, ну можно сказать итак. Без h файлов невозможно сделать независимых интерфейсов, без них, у тебя сборка проекта может увеличиться в геометрической прогрессии по времени, и главное что может вообще не скомпилироваться, если 1 функция будет скомпилирована несколько раз.
PM MAIL   Вверх
J0ker
Дата 24.9.2008, 19:31 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(HappyLife @ 24.9.2008,  15:37)
TDM, ну можно сказать итак. Без h файлов невозможно сделать независимых интерфейсов, без них, у тебя сборка проекта может увеличиться в геометрической прогрессии по времени, и главное что может вообще не скомпилироваться, если 1 функция будет скомпилирована несколько раз.

ну-да, ну-да
то-то java не компилится  smile 



--------------------
user posted image
PM MAIL   Вверх
bsa
Дата 25.9.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



TDM, вот представь, у тебя программа состоит из одного файла на 200 тысяч строчек. Это чудо компилируется порядка 10 минут, съедая 100 МБ оперативной памяти... Допустим, ты сделал ошибку в программе на 101253 строке. Вопрос, сколько времени уйдет, чтобы найти эту строку? А после этого нужно еще и скомпилировать... Хорошо, ты теперь понял, что все в один файл пихать нельзя... и ты разбил на 100 файлов по 2 тысячи строк, которые заинклюдил в одном файле... Скорость компиляции не увеличилась. Но стало проще искать место ошибки... Теперь ты решил компилировать все файлы отдельно. Но возникла проблема - часть файлов ссылаются на функции/типы/переменные из других файлов... Вот тут и возникает необходимость в *.h файлах. В них выносится интерфейс (по аналогии с паскалем, где при создании модуля нужно было описывать области INTERFACE и IMPLIMENTATION, вот только в С++ нет понятия "модуль"...) и общие данные (типы, объявление переменных и функций), а определения находятся уже в файлах *.c и *.cpp.
Короче, смысл *.h файлов в том, чтобы в них содержалась общая часть для одного или более файлов с исходниками (например, интерфейс класса), которые компилируются независимо.
PM   Вверх
TDM
Дата 30.9.2008, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



Проблема появилась. Среда: dev c++.
Я делаю h и cpp файлы для класса. В х описание, в цпп методы. 

Если в main подключать так:
Код

#include "ogl.h"

То компилятор орёт что   [Linker Error] undefined reference to `togl::init()'  Кароче не может найти методы класса.

Если подключить так:
Код

#include "ogl.cpp"

То работает.

------------------
ogl.h
Код

class togl{public:void init();} o;


ogl.cpp
Код

void togl::init(){glClearColor(0,0,0,0);}



Это сообщение отредактировал(а) TDM - 30.9.2008, 01:08
PM MAIL ICQ   Вверх
volvo877
Дата 30.9.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: нет
Всего: 116



Не надо include-ить CPP-файл... Ты его к проекту подключи (не помню, как в DevCpp это делается, что-то типа Project -> Add Files ?), он наверняка в списке Source-файлов не присутствует, так?
PM MAIL   Вверх
TDM
Дата 30.9.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



Понятно, но теперь он ругается на переменную "о" которую я в h файле объявляю. Говорит   multiple definition of `о' 

А всё, вот так жешь можно:
Код

static togl о;


volvo877
Спасибо

Это сообщение отредактировал(а) TDM - 30.9.2008, 01:19
PM MAIL ICQ   Вверх
mes
Дата 30.9.2008, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(TDM @  30.9.2008,  01:15 Найти цитируемый пост)
Говорит   multiple definition of `о' 

добавь в хидер
Код

#pragma once 
или 
#ifndef ИМЯ_ФАЙЛА_H
#define ИМЯ_ФАЙЛА_H
...
#endif


Это сообщение отредактировал(а) mes - 30.9.2008, 01:56


--------------------
PM MAIL WWW   Вверх
bsa
Дата 30.9.2008, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



TDM, чтобы объявлять переменные в заголовочном файле нужно указывать ключевое слово extern. А уже в cpp файле делать реальное определение: file.h:
Код
extern int myVar;
file.cpp:
Код
int myVar;

Если ты используешь static, то будет столько переменных, в скольких файлах ты подключил этот заголовочный файл, но все они будут разные (изменение в одном файле не будет влиять на значение в другом).
PM   Вверх
NebelDT
Дата 30.9.2008, 08:52 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.9.2008
Где: RU

Репутация: -6
Всего: -10



 smile А где ты возьмешь это все ))?
Код

/*  stdio.h

    Definitions for stream input/output.

*/

/* $Copyright: 1987$ */
/* $Revision: 9.13.2.1 $ */

#ifndef __STDIO_H
#define __STDIO_H
#define _INC_STDIO  /* MSC Guard name */

#include <_stddef.h>

#if !defined(___NFILE_H)
#include <_nfile.h>
#endif

#ifdef __cplusplus
namespace std {
#endif /* __cplusplus */


#if !defined(RC_INVOKED)

#if defined(__STDC__)
#pragma warn -nak
#endif

#pragma pack(push, 1)

#endif  /* !RC_INVOKED */

/* Definition of the file position type
*/
typedef long    fpos_t;

/* An external reference to _floatconvert (using #pragma extref _floatconvert)
 * forces floating point format conversions to be linked.
 */
extern int _floatconvert;

/* Bufferisation type to be used as 3rd argument for "setvbuf" function
*/
#define _IOFBF  0
#define _IOLBF  1
#define _IONBF  2

/*  "flags" bits definitions
*/
#define _F_RDWR 0x0003                  /* Read/write flag       */
#define _F_READ 0x0001                  /* Read only file        */
#define _F_WRIT 0x0002                  /* Write only file       */
#define _F_BUF  0x0004                  /* Malloc'ed Buffer data */
#define _F_LBUF 0x0008                  /* line-buffered file    */
#define _F_ERR  0x0010                  /* Error indicator       */
#define _F_EOF  0x0020                  /* EOF indicator         */
#define _F_BIN  0x0040                  /* Binary file indicator */
#define _F_IN   0x0080                  /* Data is incoming      */
#define _F_OUT  0x0100                  /* Data is outgoing      */
#define _F_TERM 0x0200                  /* File is a terminal    */

/* End-of-file constant definition
*/
#define EOF (-1)                /* End of file indicator */
#define WEOF (_WINT_T)(0xFFFF)   /* wide-character end of file indicator */

/* Default buffer size use by "setbuf" function
*/
#define BUFSIZ  512         /* Buffer size for stdio */

/* Size of an arry large enough to hold a temporary file name string
*/
#define L_ctermid   5       /* CON: plus null byte */
#define P_tmpdir    ""      /* temporary directory */
#define L_tmpnam    13      /* tmpnam buffer size */

/* Constants to be used as 3rd argument for "fseek" function
*/
#define SEEK_CUR    1
#define SEEK_END    2
#define SEEK_SET    0

/* Number of unique file names that shall be generated by "tmpnam" function
*/
#define TMP_MAX     0xFFFF

/* Definition of the control structure for streams
*/
typedef struct
{
        unsigned char  *curp;       /* Current active pointer     */
        unsigned char  *buffer;     /* Data transfer buffer       */
        int             level;      /* fill/empty level of buffer */
        int             bsize;      /* Buffer size                */
        unsigned short  istemp;     /* Temporary file indicator   */
        unsigned short  flags;      /* File status flags          */
        wchar_t         hold;       /* Ungetc char if no buffer   */
        char            fd;         /* File descriptor            */
        unsigned char   token;      /* Used for validity checking */
}       FILE;                       /* This is the FILE object    */

/* Number of files that can be open simultaneously
*/
#if defined(__STDC__)
#define FOPEN_MAX (_NFILE_)
#else
#define FOPEN_MAX (_NFILE_)
#define SYS_OPEN  (_NFILE_)
#endif

#define FILENAME_MAX 260

#ifdef __cplusplus
extern "C" {
#endif

/* Standard I/O predefined streams
*/
extern  FILE        _RTLENTRY _EXPDATA _streams[];
extern  unsigned    _RTLENTRY _EXPDATA _nfile;

#define stdin   (&_streams[0])
#define stdout  (&_streams[1])
#define stderr  (&_streams[2])

/* __getStream() is used internally with CG only, but prototyped here for
  consistancy with the 16-bit version.
*/
FILE * _RTLENTRY _EXPFUNC __getStream( int );
#ifdef __cplusplus
}
#endif


#ifdef __cplusplus
extern "C" {
#endif
void      _RTLENTRY _EXPFUNC clearerr(FILE * __stream);
int       _RTLENTRY _EXPFUNC fclose(FILE * __stream);
int       _RTLENTRY _EXPFUNC fflush(FILE * __stream);
int       _RTLENTRY _EXPFUNC fgetc(FILE * __stream);
_WINT_T   _RTLENTRY _EXPFUNC fgetwc(FILE * __stream);
int       _RTLENTRY _EXPFUNC fgetpos(FILE * __stream, fpos_t*__pos);
char  *   _RTLENTRY _EXPFUNC fgets(char * __s, int __n, FILE * __stream);
wchar_t*  _RTLENTRY _EXPFUNC fgetws(wchar_t * __s, int __n, FILE * __stream);
FILE  *   _RTLENTRY _EXPFUNC fopen(const char * __path, const char * __mode);
FILE  *   _RTLENTRY _EXPFUNC _wfopen(const wchar_t * __path,
                                 const wchar_t * __mode);
int       _RTLENTRY _EXPFUNC fprintf(FILE * __stream, const char * __format, ...);
int       _RTLENTRY _EXPFUNC fwprintf(FILE * __stream, const wchar_t *__format, ...);
int       _RTLENTRY _EXPFUNC fputc(int __c, FILE * __stream);
_WINT_T   _RTLENTRY _EXPFUNC fputwc(_WINT_T __c, FILE * __stream);
int       _RTLENTRY _EXPFUNC fputs(const char * __s, FILE * __stream);
int       _RTLENTRY _EXPFUNC fputws(const wchar_t * __s, FILE * __stream);
_SIZE_T   _RTLENTRY _EXPFUNC fread(void * __ptr, _SIZE_T __size, _SIZE_T __n,
                                 FILE * __stream);
FILE  *   _RTLENTRY _EXPFUNC freopen(const char * __path, const char * __mode,
                                 FILE * __stream);
FILE  *   _RTLENTRY _EXPFUNC _wfreopen(const wchar_t * __path, const wchar_t * __mode,
                                 FILE * __stream);
int       _RTLENTRY _EXPFUNC fscanf(FILE * __stream, const char * __format, ...);
int       _RTLENTRY _EXPFUNC fwscanf(FILE *__stream, const wchar_t *__format, ...);
int       _RTLENTRY _EXPFUNC fseek(FILE * __stream, long __offset, int __whence);
int       _RTLENTRY _EXPFUNC fsetpos(FILE * __stream, const fpos_t*__pos);
long      _RTLENTRY _EXPFUNC ftell(FILE * __stream);
_SIZE_T   _RTLENTRY _EXPFUNC fwrite(const void * __ptr, _SIZE_T __size, _SIZE_T __n,
                                 FILE * __stream);
char  *   _RTLENTRY _EXPFUNC gets(char * __s);
wchar_t*  _RTLENTRY _EXPFUNC _getws(wchar_t * __s);
int       _RTLENTRY _EXPFUNC _pclose(FILE *__stream);
void      _RTLENTRY _EXPFUNC perror(const char * __s);
void      _RTLENTRY _EXPFUNC _wperror(const wchar_t * __s);
FILE *    _RTLENTRY _EXPFUNC _popen(const char * __command, const char * __mode);
FILE *    _RTLENTRY _EXPFUNC _wpopen(const wchar_t * __command,
                                 const wchar_t * __mode);

int       _RTLENTRY _EXPFUNC printf(const char * __format, ...);
int       _RTLENTRY _EXPFUNC wprintf(const wchar_t * __format, ...);
int       _RTLENTRY _EXPFUNC puts(const char * __s);
int       _RTLENTRY _EXPFUNC _putws(const wchar_t * __s);

int       _RTLENTRY _EXPFUNC remove(const char * __path);
int       _RTLENTRY _EXPFUNC _wremove(const wchar_t * __path);
int       _RTLENTRY _EXPFUNC rename(const char * __oldname,const char * __newname);
int       _RTLENTRY _EXPFUNC _wrename(const wchar_t * __oldname,const wchar_t * __newname);
void      _RTLENTRY _EXPFUNC rewind(FILE * __stream);
int       _RTLENTRY _EXPFUNC scanf(const char * __format, ...);
int       _RTLENTRY _EXPFUNC wscanf(const wchar_t * __format, ...);
void      _RTLENTRY _EXPFUNC setbuf(FILE * __stream, char * __buf);
int       _RTLENTRY _EXPFUNC setvbuf(FILE * __stream, char * __buf,
                                 int __type, _SIZE_T __size);
int       _RTLENTRY _EXPFUNC sprintf(char * __buffer, const char * __format, ...);
int       _RTLENTRY _EXPFUNC swprintf(wchar_t * __buffer, const wchar_t * __format, ...);
int       _RTLENTRY _EXPFUNC snprintf(char * __buffer, _SIZE_T __nsize,
                                 const char * __format, ...);
int       _RTLENTRY _EXPFUNC snwprintf(wchar_t * __buffer, _SIZE_T __nsize,
                                 const wchar_t * __format, ...);
#ifndef __STDC__
int       _RTLENTRY _EXPFUNC _snprintf(char * __buffer, _SIZE_T __nsize,
                                 const char * __format, ...);
int       _RTLENTRY _EXPFUNC _snwprintf(wchar_t * __buffer, _SIZE_T __nsize,
                                 const wchar_t * __format, ...);
#endif
int       _RTLENTRY _EXPFUNC sscanf(const char * __buffer,
                                 const char * __format, ...);
int       _RTLENTRY _EXPFUNC swscanf(const wchar_t * __buffer,
                                 const wchar_t * __format, ...);
char  *   _RTLENTRY _EXPFUNC strerror(int __errnum);
FILE  *   _RTLENTRY _EXPFUNC tmpfile(void);
char  *   _RTLENTRY _EXPFUNC tmpnam(char * __s);
wchar_t * _RTLENTRY _EXPFUNC _wtmpnam(wchar_t * __s);
int       _RTLENTRY _EXPFUNC ungetc(int __c, FILE * __stream);
_WINT_T   _RTLENTRY _EXPFUNC ungetwc(_WINT_T __c, FILE * __stream);
int       _RTLENTRY _EXPFUNC vfprintf(FILE * __stream, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vfscanf(FILE * __stream, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vprintf(const char * __format, void * __arglist);
int       _RTLENTRY _EXPFUNC vscanf(const char * __format, void * __arglist);
int       _RTLENTRY _EXPFUNC vsprintf(char * __buffer, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vsnprintf(char * __buffer, _SIZE_T __nsize, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vsscanf(const char * __buffer, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vfwprintf(FILE * __stream, const wchar_t * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vfwscanf(FILE * __stream, const wchar_t * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vwprintf(const wchar_t * __format, void * __arglist);
int       _RTLENTRY _EXPFUNC vwscanf(const wchar_t * __format, void * __arglist);
int       _RTLENTRY _EXPFUNC vswprintf(wchar_t * __buffer, const wchar_t * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vsnwprintf(wchar_t * __buffer, _SIZE_T __nsize, const wchar_t * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC vswscanf(const wchar_t * __buffer, const wchar_t * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC _unlink(const char * __path);
int       _RTLENTRY _EXPFUNC _wunlink(const wchar_t * __path);
#ifndef   __STDC__
int       _RTLENTRY _EXPFUNC _vsnprintf(char * __buffer, _SIZE_T __nsize, const char * __format,
                                 void * __arglist);
int       _RTLENTRY _EXPFUNC _vsnwprintf(wchar_t * __buffer, _SIZE_T __nsize, const wchar_t * __format,
                                 void * __arglist);
#endif

int       _RTLENTRY _EXPFUNC getc(FILE * __fp);
_WINT_T   _RTLENTRY _EXPFUNC getwc(FILE * __fp);
int       _RTLENTRY _EXPFUNC getchar(void);
_WINT_T   _RTLENTRY _EXPFUNC getwchar(void);
int       _RTLENTRY _EXPFUNC putchar(const int __c);
_WINT_T   _RTLENTRY _EXPFUNC putwchar(const _WINT_T __c);
int       _RTLENTRY _EXPFUNC putc(const int __c, FILE * __fp);
_WINT_T   _RTLENTRY _EXPFUNC putwc(const _WINT_T __c, FILE * __fp);
int       _RTLENTRY _EXPFUNC feof(FILE * __fp);
int       _RTLENTRY _EXPFUNC ferror(FILE * __fp);
int       _RTLENTRY _EXPFUNC _fileno(FILE _FAR *__fp);
int       _RTLENTRY _EXPFUNC _flushall(void);
int       _RTLENTRY _EXPFUNC _fcloseall(void);
FILE  *   _RTLENTRY _EXPFUNC _fdopen(int __handle, char * __type);
FILE  *   _RTLENTRY _EXPFUNC _wfdopen(int __handle, wchar_t * __type);
int       _RTLENTRY _EXPFUNC _fgetchar(void);
_WINT_T   _RTLENTRY _EXPFUNC _fgetwchar(void);
int       _RTLENTRY _EXPFUNC _fputchar(int __c);
_WINT_T   _RTLENTRY _EXPFUNC _fputwchar(_WINT_T __c);
FILE  *   _RTLENTRY _EXPFUNC _fsopen (const char * __path, const char * __mode, int __shflag);
FILE  *   _RTLENTRY _EXPFUNC _wfsopen (const wchar_t * __path,
                                 const wchar_t * __mode, int __shflag);
#ifdef __IN_SOPEN
int       _RTLENTRY _EXPFUNC _sopen ();
#else
int       _RTLENTRY _EXPFUNC _sopen (const char *__path, int __access, int __shflag,
                                 ... /* unsigned mode */);
#endif
int       _RTLENTRY _EXPFUNC _wsopen (const wchar_t *__path, int __access, int __shflag,
                                 ... /* unsigned mode */);
int       _RTLENTRY _EXPFUNC _getw(FILE * __stream);
int       _RTLENTRY _EXPFUNC _putw(int __w, FILE * __stream);
int       _RTLENTRY _EXPFUNC _rmtmp(void);
char  *   _RTLENTRY _EXPFUNC _strerror(const char * __s);
char  *   _RTLENTRY _EXPFUNC _tempnam(char * __dir, char * __pfx);
wchar_t * _RTLENTRY _EXPFUNC _wtempnam(wchar_t * __dir, wchar_t * __pfx);
int       _RTLENTRY _EXPFUNC _fgetc(FILE * __stream);           /* used by getc() macro */
_WINT_T   _RTLENTRY _EXPFUNC _fgetwc(FILE * __stream);
int       _RTLENTRY _EXPFUNC _fputc(char __c, FILE * __stream); /* used by putc() macro */
_WINT_T   _RTLENTRY _EXPFUNC _fputwc(wchar_t __c, FILE * __stream);
#if !defined(__STDC__)
int       _RTLENTRY _EXPFUNC flushall(void);
FILE  *   _RTLENTRY _EXPFUNC fdopen(int __handle, char * __type);
int       _RTLENTRY _EXPFUNC fputchar(int __c);
int       _RTLENTRY _EXPFUNC fgetchar(void);
int       _RTLENTRY _EXPFUNC fileno(FILE * __fp);
int       _RTLENTRY _EXPFUNC fcloseall(void);
char  *   _RTLENTRY _EXPFUNC tempnam(char * __dir, char * __pfx);
int       _RTLENTRY _EXPFUNC rmtmp(void);
int       _RTLENTRY _EXPFUNC unlink(const char * __path);
int       _RTLENTRY _EXPFUNC getw(FILE * __stream);
int       _RTLENTRY _EXPFUNC putw(int __w, FILE * __stream);
int       _RTLENTRY _EXPFUNC sopen (const char *__path, int __access, int __shflag,
                                 ... /* unsigned mode */);
#endif
#ifdef  __cplusplus
}
#endif

/*  The following macros provide for common functions */

#if !defined(__CODEGUARD__)

#define ferror(__f)   ((__f)->flags & _F_ERR)
#define feof(__f)     ((__f)->flags & _F_EOF)
#define fileno(__f)   ((__f)->fd)
#define _fileno(__f)   ((__f)->fd)

#define getc(__f) \
  ((--((__f)->level) >= 0) ? (unsigned char)(*(__f)->curp++) : \
    _fgetc (__f))

#define putc(__c,__f) \
  ((++((__f)->level) < 0) ? (unsigned char)(*(__f)->curp++=(__c)) : \
    _fputc (((char)(__c)),__f))

#define getchar()   getc(stdin)
#define getwchar()  getwc(stdin)
#define putchar(__c)  putc((__c), stdout)
#define putwchar(__c) putwc((__c), stdout)

#endif

#define ungetc(__c,__f) ungetc((__c),__f)   /* traditionally a macro */

#if !defined(RC_INVOKED)

/* restore default packing */
#pragma pack(pop)

#if defined(__STDC__)
#pragma warn .nak
#endif

#endif  /* !RC_INVOKED */

#ifdef __cplusplus
} // std
#endif /* __cplusplus */

#endif  /* __STDIO_H */

#if defined(__cplusplus) && !defined(__USING_CNAME__) && !defined(__STDIO_H_USING_LIST)
#define __STDIO_H_USING_LIST
     using std::FILE;
     using std::__getStream;
     using std::_fcloseall;
     using std::_fdopen;
     using std::_fgetc;
     using std::_fgetchar;
     using std::_fgetwc;
     using std::_fgetwchar;
     using std::_fileno;
     using std::_floatconvert;
     using std::_flushall;
     using std::_fputc;
     using std::_fputchar;
     using std::_fputwc;
     using std::_fputwchar;
     using std::_fsopen;
     using std::_getw;
     using std::_getws;
     using std::_pclose;
     using std::_popen;
     using std::_putw;
     using std::_putws;
     using std::_rmtmp;
     using std::_sopen;
     using std::_streams;
     using std::_strerror;
     using std::_tempnam;
     using std::_unlink;
     using std::_wfdopen;
     using std::_wfopen;
     using std::_wfreopen;
     using std::_wfsopen;
     using std::_wperror;
     using std::_wpopen;
     using std::_wremove;
     using std::_wrename;
     using std::_wsopen;
     using std::_wtempnam;
     using std::_wtmpnam;
     using std::_wunlink;
     using std::clearerr;
     using std::fclose;
     using std::feof;
     using std::ferror;
     using std::fflush;
     using std::fgetc;
     using std::fgetpos;
     using std::fgets;
     using std::fgetwc;
     using std::fgetws;
     using std::fopen;
     using std::fpos_t;
     using std::fprintf;
     using std::fputc;
     using std::fputs;
     using std::fputwc;
     using std::fputws;
     using std::fread;
     using std::freopen;
     using std::fscanf;
     using std::fseek;
     using std::fsetpos;
     using std::ftell;
     using std::fwprintf;
     using std::fwrite;
     using std::fwscanf;
     using std::getc;
     using std::getchar;
     using std::gets;
     using std::getwc;
     using std::getwchar;
     using std::perror;
     using std::printf;
     using std::putc;
     using std::putchar;
     using std::puts;
     using std::putwc;
     using std::putwchar;
     using std::remove;
     using std::rename;
     using std::rewind;
     using std::scanf;
     using std::setbuf;
     using std::setvbuf;
     using std::snprintf;
     using std::snwprintf;
     using std::sprintf;
     using std::sscanf;
     using std::strerror;
     using std::swprintf;
     using std::swscanf;
     using std::tmpfile;
     using std::tmpnam;
     using std::ungetc;
     using std::ungetwc;
     using std::vfprintf;
     using std::vfscanf;
     using std::vfwprintf;
     using std::vfwscanf;
     using std::vprintf;
     using std::vscanf;
     using std::vsnprintf;
     using std::vsnwprintf;
     using std::vsprintf;
     using std::vsscanf;
     using std::vswprintf;
     using std::vswscanf;
     using std::vwprintf;
     using std::vwscanf;
     using std::wprintf;
     using std::wscanf;

#if !defined(__STDC__)
     using std::_snprintf;
     using std::_snwprintf;
     using std::_vsnprintf;
     using std::_vsnwprintf;
     using std::fcloseall;
     using std::fdopen;
     using std::fgetchar;
     using std::fileno;
     using std::flushall;
     using std::fputchar;
     using std::getw;
     using std::putw;
     using std::rmtmp;
     using std::sopen;
     using std::tempnam;
     using std::unlink;
#endif // !__STDC__

#endif /* __USING_CNAME__ */


PM MAIL WWW YIM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.