Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Кто знает cl? / 11 сообщений из 11, страница 1 из 1
13.07.2006, 17:57
    #33852083
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
День добрый.
Вопрос такой, cl от 6 студии благополучно компилирует проект
main.c, myheader.h (имена от балды) и э литтл студийных хэдеров.
Стоит только переименовать main.c в main.cpp -
компилятор сыпет ошибки -
то надо явно привести тип или же не определен тип данных (т.е. не видит где определен)

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

Вызывается из командной строки, ессно, с одинаковым надором ключей.


Кстати, вдогонку, посоветуйте фри виндовый текстовый эдитор, чтобы

1. С табами под открытые файлы
2. С подсветкой make/shell/java/c/sql и.т.д.
3. С минимумом дополнительных функций (желательно вообще без них)
4. Помнил, откуда последний раз открывали и куда сохраняли
5. Умел работать с юникодом
6.7.8.9.10 - не глючил

А то, блин, у меня уже руки опустились. Все напишут - вплоть до встроенного фтп - а поиск, например, кривой. Или табов нет.

Сенкс.
...
Рейтинг: 0 / 0
13.07.2006, 18:22
    #33852165
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
T800
Стоит только переименовать main.c в main.cpp -
компилятор сыпет ошибки
...
Но, честно говоря, даже если компайлер решает, что проект плюсовый ...

Вижуал студия так и поступает. Так же поступает и gcc (к сведению).
...
Рейтинг: 0 / 0
13.07.2006, 18:39
    #33852207
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
T800Стоит только переименовать main.c в main.cpp - компилятор сыпет ошибкиПотому что С и С++ это разные языки.

T800Кстати, вдогонку, посоветуйте фри виндовый текстовый эдитор, чтобыhttp://farmanager.com/
...
Рейтинг: 0 / 0
13.07.2006, 19:01
    #33852263
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
White OwlПотому что С и С++ это разные языки.
Был уверен, что С код должен компилиться CPP компайлером. И уж точно не должно быть разночтений в приведении типов.. А зря.
...
Рейтинг: 0 / 0
13.07.2006, 19:20
    #33852303
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Еще одна просьба.

Поскольку Студия у меня в полудохлом состоянии (без ИДЕ) и используется только для компиляции и сборки (так исторически сложилось), подскажите, в справке к ней есть ли описание ключей компайлера?
А то, блин куплю диск ради справки, а - зря.

Потратил время в инете руководства по ключам cl не нашел. Дошел до ручки - полез на вражеский сайт. Но в успехе не уверен.

Если будет соответствующая ссылка, оставьте здесь.
...
Рейтинг: 0 / 0
13.07.2006, 19:27
    #33852312
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Нашел однако..
...
Рейтинг: 0 / 0
13.07.2006, 20:06
    #33852372
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Ну так поделился бы, вдруг еще кто прийдет с такими вопросами :)
А вообще все ключи cl можно узнать дав команду cl /?

Для cl из VC 2003 будет такой список:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
                          C/C++ COMPILER OPTIONS

                              -OPTIMIZATION-

/O1 minimize space                       /Op[-] improve floating-pt consistency
/O2 maximize speed                       /Os favor code space
/Oa assume no aliasing                   /Ot favor code speed
/Ob<n> inline expansion (default n=0)    /Ow assume cross-function aliasing
/Od disable optimizations (default)      /Ox maximum opts. (/Ogityb2 /Gs)
/Og enable global optimization           /Oy[-] enable frame pointer omission
/Oi enable intrinsic functions

                             -CODE GENERATION-

/G3 optimize for 80386                   /Gh enable _penter function call
/G4 optimize for 80486                   /GH enable _pexit function call
/G5 optimize for Pentium                 /GR[-] enable C++ RTTI
/G6 optimize for PPro, P-II, P-III       /GX[-] enable C++ EH (same as /EHsc)
/G7 optimize for Pentium 4 or Athlon     /EHs enable C++ EH (no SEH exceptions)
/GB optimize for blended model (default) /EHa enable C++ EH (w/ SEH exceptions)
/Gd __cdecl calling convention           /EHc extern "C" defaults to nothrow
/Gr __fastcall calling convention        /GT generate fiber-safe TLS accesses
/Gz __stdcall calling convention         /Gm[-] enable minimal rebuild
/GA optimize for Windows Application     /GL[-] enable link-time code generation
/Gf enable string pooling                /QIfdiv[-] enable Pentium FDIV fix
/GF enable read-only string pooling      /QI0f[-] enable Pentium 0x0f fix
/Gy separate functions for linker        /QIfist[-] use FIST instead of ftol()
/GZ Enable stack checks (/RTCs)          /RTC1 Enable fast checks (/RTCsu)
/Ge force stack checking for all funcs   /RTCc Convert to smaller type checks
/Gs[num] control stack checking calls    /RTCs Stack Frame runtime checking
/GS enable security checks               /RTCu Uninitialized local usage checks
/clr[:noAssembly] compile for the common language runtime
    noAssembly - do not produce an assembly
/arch:<SSE|SSE2> minimum CPU architecture requirements, one of:
    SSE - enable use of instructions available with SSE enabled CPUs
    SSE2 - enable use of instructions available with SSE2 enabled CPUs

                              -OUTPUT FILES-

/Fa[file] name assembly listing file     /Fo<file> name object file
/FA[sc] configure assembly listing       /Fp<file> name precompiled header file
/Fd[file] name .PDB file                 /Fr[file] name source browser file
/Fe<file> name executable file           /FR[file] name extended .SBR file
/Fm[file] name map file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path     /Fx merge injected code to file
/FU<file> forced using assembly/module   /FI<file> name forced include file
/C don't strip comments                  /U<name> remove predefined macro
/D<name>{=|#}<text> define macro         /u remove all predefined macros
/E preprocess to stdout                  /I<dir> add to include search path
/EP preprocess to stdout, no #line       /X ignore "standard places"
/P preprocess to file

                                -LANGUAGE-

/Zi enable debugging information         /Ze enable extensions (default)
/ZI enable Edit and Continue debug info  /Zl omit default library name in .OBJ
/Z7 enable old-style debug info          /Zg generate function prototypes
/Zd line number debugging info only      /Zs syntax check only
/Zp[n] pack structs on n-byte boundary   /vd{0|1} disable/enable vtordisp
/Za disable extensions (implies /Op)     /vm<x> type of pointers to members
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
    forScope - enforce Standard C++ for scoping rules
    wchar_t - wchar_t is the native type, not a typedef

                              -MISCELLANEOUS-

@<file> options response file            /wo<n> issue warning n once
/?, /help print this help message        /w<l><n> set warning level 1-4 for n
/c compile only, no link                 /W<n> set warning level (default n=1)
/H<num> max external name length         /Wall enable all warnings
/J default char type is unsigned         /Wp64 enable 64 bit porting warnings
/nologo suppress copyright message       /WX treat warnings as errors
/showIncludes show include file names    /WL enable one line diagnostics
/Tc<source file> compile file as .c      /Yc[file] create .PCH file
/Tp<source file> compile file as .cpp    /Yd put debug info in every .OBJ
/TC compile all files as .c              /Yl[sym] inject .PCH ref for debug lib
/TP compile all files as .cpp            /Yu[file] use .PCH file
/V<string> set version string            /YX[file] automatic .PCH
/w disable all warnings                  /Y- disable all PCH options
/wd<n> disable warning n                 /Zm<n> max memory alloc (% of default)
/we<n> treat warning n as an error

                                 -LINKING-

/MD link with MSVCRT.LIB                 /MDd link with MSVCRTD.LIB debug lib
/ML link with LIBC.LIB                   /MLd link with LIBCD.LIB debug lib
/MT link with LIBCMT.LIB                 /MTd link with LIBCMTD.LIB debug lib
/LD Create .DLL                          /F<num> set stack size
/LDd Create .DLL debug library           /link [linker options and libraries]
...
Рейтинг: 0 / 0
13.07.2006, 20:21
    #33852394
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
С одной стороны стало не по себе за свою тупость..
С друго стороны - не зря мучился - у микрософта в мсдн описание
достаточно полное, так что было ради чего к ним ходить
...
Рейтинг: 0 / 0
13.07.2006, 20:49
    #33852434
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Думаю, будет несложно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
#define HSFL_RECORD_MAX   10 
#define HSFL_PACKET_MAX   100 

struct SHMEM {
  short  version;
  short  count;
  short  put, get;
  struct HSFL_RECORD {
    int            counter;
    short          msgnr;
    unsigned char  pvalue2;
    unsigned char  pvalue3;
    unsigned char  pvalue4;
    unsigned char  state;
    char           datetime[  23  +  1  ];
  } buf[ HSFL_RECORD_MAX ];
};

struct HSFL_PACKET {
  struct HSFL_RECORD  data[ HSFL_PACKET_MAX ];
};

Achtung, die Frage:
Почему как С, компайлер проглатывает, тогда как c ключом -TP, принимая, за СРР -
error C2079: 'data' uses undefined struct 'HSFL_RECORD'

?
...
Рейтинг: 0 / 0
14.07.2006, 06:48
    #33852687
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Потому что в С++ должно быть
struct SHMEM::HSFL_RECORD data[ HSFL_PACKET_MAX ];
...
Рейтинг: 0 / 0
14.07.2006, 10:40
    #33853143
T800
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто знает cl?
Сенкс..
Удивительно, никогда бы не подумал, что могут быть проблемы с таким простым кодом
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Кто знает cl? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]