Почему бы просто не использовать небольшой цикл, чтобы определить, существует ли именованный лист? Скажите, искали ли вы рабочую таблицу с именем «Sheet1» в текущей книге.
Dim wb as Workbook
Dim ws as Worksheet
Set wb = ActiveWorkbook
For Each ws in wb.Worksheets
if ws.Name = "Sheet1" then
'Do something here
End if
Next
Вот несколько причин того, чтобы иметь другое именование C по сравнению с заголовками C++:
Помнят, C не C++, и это может быть очень опасно для смешивания и подгонки, если Вы не знаете то, что Вы делаете. Именование Ваших источников соответственно помогает Вам сказать языки независимо.
Я использую.h, потому что это - то, что Microsoft использует, и что создает их генератор кода. Никакая потребность идти вразрез с мелкой частицей.
Я недавно начал использовать *.hpp
для заголовков C++.
причина состоит в том, что я использую emacs в качестве своего основного редактора, и он входит автоматически в c-режим, когда Вы загружаетесь *.h
файл и в c ++-mode, когда Вы загружаетесь *.hpp
файл.
Независимо, что факт я не вижу серьезных оснований для выбора *.h
более чем *.hpp
или наоборот.
Можно назвать Ваш, включает то, что Вы любите.
Просто потребность указать, что полное имя в #include
.
я предполагаю это, если Вы работаете с C для использования .h
и когда с C++ для использования .hpp
.
Это находится в конце просто конвенция.
Codegear Разработчик C++ использует .hpp для заголовочных файлов, автоволшебно сгенерированных от исходных файлов Delphi и.h файлов для Ваших "собственных" заголовочных файлов.
Так, когда я пишу заголовочный файл C++, я всегда использую.h.
Я предпочитаю, чтобы .hpp для C++ прояснил обоим редакторам и другим программистам, что это - заголовок C++, а не заголовочный файл C.
C++ ("C Плюс Плюс") имеет смысл, поскольку .cpp
, Имеющий заголовочные файлы с .hpp расширением, не имеет того же логического потока.
Я использую .hpp, потому что я хочу, чтобы пользователь дифференцировал, какие заголовки являются заголовками C++, и какие заголовки являются заголовками C.
Это может быть важно, когда Ваш проект использует и C и модули C++: Как кто-то еще объясненный передо мной, необходимо сделать это очень тщательно и его запуски согласно "контракту", который Вы предлагаете посредством расширения
(Или .hxx или .hh, или безотносительно)
Этот заголовок для C++ только.
, Если Вы находитесь в модуле C, даже не пытайтесь включать его. Вам не понравится он, потому что никакое усилие не сделано для создания этого C-friendly (слишком много было бы потеряно, как перегрузка функции, пространства имен, и т.д. и т.д.).
Этот заголовок может быть включен и по источнику C и по источнику C++, прямо или косвенно.
Это может включенный непосредственно, будучи защищенным __cplusplus
макрос:
extern "C"
. , Например:
#ifndef MY_HEADER_H
#define MY_HEADER_H
#ifdef __cplusplus
extern "C"
{
#endif
void myCFunction() ;
#ifdef __cplusplus
} // extern "C"
#endif
#endif // MY_HEADER_H
Или это могло быть включено косвенно соответствующим .hpp заголовком, включающим его с extern "C"
объявление.
, Например:
#ifndef MY_HEADER_HPP
#define MY_HEADER_HPP
extern "C"
{
#include "my_header.h"
}
#endif // MY_HEADER_HPP
и:
#ifndef MY_HEADER_H
#define MY_HEADER_H
void myCFunction() ;
#endif // MY_HEADER_H
Это не имеет значения, какое расширение Вы используете. Любой в порядке.
я использую *.h
для C и *.hpp
для C++.
Я всегда полагал .hpp
заголовок быть своего рода портманто .h
и .cpp
файлы... заголовок, который содержит детали реализации также.
Обычно, когда я видел (и использование) .hpp
как расширение, нет никакого соответствия .cpp
файл. Как другие сказали, это не жесткое правило, как я склонен использовать .hpp
файлы.
В одном из моих заданий в начале 90-х, мы использовали .cc и .hh для исходных и заголовочных файлов соответственно. Я все еще предпочитаю его по всем альтернативам, вероятно, потому что является самым легким ввести.
Расширение исходного файла может иметь значение к Вашей системе сборки, например, у Вас могло бы быть правило в Вашем make-файле для .cpp
или .c
файлы, или Ваш компилятор (например, Microsoft cl.exe
) мог бы скомпилировать файл как C или C++ в зависимости от расширения.
, поскольку необходимо предоставить целое имя файла #include
директива, расширение заголовочного файла не важно. Можно включать .c
файл в другом исходном файле, если Вам нравится, потому что это - просто текстовое, включают. Ваш компилятор мог бы иметь опцию вывести предварительно обработанный вывод, который ясно даст понять это (Microsoft: /P
для предварительной обработки в файл, /E
для предварительной обработки к stdout
, /EP
для исключения #line
директивы /C
для сохранения комментариев)
Вы могли бы принять решение использовать .hpp
для файлов, которые только относятся к среде C++, т.е. они используют функции, которые не скомпилируют в C.