Що таке Trigraph в CBuilder?

Якщо ви перегляньте каталог bin в дереві установки CBuilder, то знайдете там програму trigraph Для більшості людей програма trigraph не потрібна і може бути проігнорована Однак для деяких власників європейських клавіатур trigraph може бути необхідна Деякі клавіатури в окремих країнах не мають всіх «стандарт них» символів, необхідних для програмування на C + + Наприклад, потрібні такі символи, як «дієз» (#), квадратні дужки ([і]), зворотна риса (\) Комітет ANSI C + + здогадався, що ці символи не завжди доступні, і придумав спосіб емулювати їх на всіх клавіатурах Наприклад, символ # можна представити у вигляді трьох символів,? = Якщо у вас був вихідний файл з наступним кодом:

??=include &ltstdioh&gt

то стандартний компілятор C + + перетворює цю строчку в стандартний код на C + +:

#include &ltstdioh&gt

На жаль, обробка такого коду сильно загальмовує компілятор, так що Borland надала окремий продукт – програму trigraph, яка виконує такі перетворення Наприклад, ми створюємо файл tritestcpp, що містить наступний код:

??=include &ltstdioh&gt

??=include &ltstdlibh&gt int array?(20?)

int main()

??&lt

return 0

??&gt

Тоді, запустивши команду trigraph  tritestcpp, Цей файл буде скопійований в tritestbak, а на його місці, tritestcpp, буде новий файл з наступним кодом:

#include &ltstdioh&gt

#include &ltstdlibh&gt int array[20]

int main()

{

return 0

}

Цей файл компілюватиметься стандартним C + + компілятором Я не можу собі уявити ситуації, коли будь-хто буде використовувати trigraph крім як у абсолютно безвихідній ситуації, але проте, якщо у вас зламаються клавіші # або {}, то вам не обовязково відразу йти і топитися

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*