Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

15 советов по переходу от классного C ++ к современному C ++ Часть 1/3

digital particles

Возможно, вы знаете C или C ++ еще в колледже и хотите разрабатывать приложения, игры и приложения AI, но не уверены, достаточно ли того, что вы узнали, чтобы помочь вам достичь своей цели. Как перейти от «классного» C ++ к современному C ++?

 Сегодня кодирование на любом языке программирования является незаменимым навыком, и в Интернете есть множество ресурсов, от того, как писать код с нуля до того, как создавать профессиональные приложения высокого класса, API и алгоритмы. Обучение программированию хотя бы на одном языке программирования является обязательным в образовательных учреждениях. Каждый аспект жизни сегодня в какой-то момент контролируется компьютерной программой. С развитием компьютеров и языков программирования наряду с операционными системами программирование стало более масштабным и сложным. Сегодня программирование необходимо во всех отделах и везде. 

C ++ — один из популярных языков программирования, изучаемый в образовательных программах. Возможно, вы приобрели вводные навыки программирования, но как вы можете найти им хорошее применение? Достаточно ли C ++, который вы изучали в школе, чтобы быть продуктивным? Для любителей — да! Вы можете продуктивно использовать C ++, запустив базовый код в консоли. Однако если быть профессионалом, ответ — нет. Вам необходимо создавать современные приложения на C ++. Итак, как вы можете перейти от Classroom C ++ к Modern C ++ и включить потрясающие изображения, темы, базы данных, мощную функциональность и 2D- или 3D-графику в свое многоплатформенное или кроссплатформенное приложение? В этой статье мы дадим основные советы о том, как вы можете улучшить свой набор навыков. Но перед этим давайте поделимся несколькими причинами, по которым C ++ полезен.

  1. Знайте, почему C ++ необходим в образовании 

В мире программирования существует два типа языков программирования: интерпретируемые и неинтерпретируемые (скомпилированные) языки программирования. Наши компьютеры работают с машинным кодом (кодом, который может быть напрямую запрограммирован ассемблерным кодом на CPU или GPU), который сообщает компьютеру, что делать. Исполняемые файлы имеют этот код. Машинный код — это самый быстрый и самый нативный код, но он требует написания множества строк для простых задач и не может быть обобщен для различных типов ЦП. 

Компилятор представляет собой компьютерную программу , которая преобразует код на языке программирования читабельной написано в тексте в исполняемый машинный код. В зависимости от того, насколько хорош компилятор в оптимизации, такой код может быть не таким быстрым, как рукописный ассемблерный код, но разница в скорости обычно очень мала. Компиляторы C ++ обычно очень хороши в оптимизации, и язык разработан с учетом оптимизации. Это одна из причин, по которой C ++ является самым быстрым и мощным языком программирования и одним из самых популярных языков в мире. 

Интерпретируемые языки программированиялибо компилируются в машинный код на лету, либо вместо этого запускаются внутри обычного исполняемого приложения, которое считывает исходный код и реализует поведение. Хорошими примерами являются Java, Python или Visual Basic. Вот почему такие языки медленнее при выполнении операций, поскольку им необходимо использовать скомпилированные библиотеки для более быстрых операций. Большинство интерпретируемых языков программирования и некоторые языки asm используют компиляторы C / C ++ для создания своих библиотек: Python, например, имеет свои ключевые ориентированные на производительность библиотеки, написанные на C или C ++, поэтому вы пишете код Python, который фактически использует C ++ под капотом. . Использование интерпретируемого языка программирования подобно бегуну, а использование скомпилированного (неинтерпретируемого) языка программирования похоже на запуск самого себя. Эта тонкая разница превращается в огромную разницу, когда одна и та же процедура (например,для распознавания лиц) выполняется миллионы раз за миллисекунду.

С ++ может быть немного сложно изучить, но он быстрее и продуктивнее во всех областях и на всех платформах. Изучение C ++ в вашей школе или университете — хороший план, потому что область C ++ очень широка. Итак, чтобы усовершенствовать свои знания C ++, вы должны решить, какие приложения вы хотите разрабатывать профессионально. Вы хотите разрабатывать приложения для баз данных? Вы хотите кодировать серверные приложения C ++, работающие на серверах, или проводить инженерные или научные исследования? Вы хотите разрабатывать простые приложения с потрясающими изображениями и интерфейсами пользовательского интерфейса? Вы хотите разрабатывать 2D или 3D игры, приложения AI или более сложные приложения, включая все это?

Вот первый совет: 

Совет 1 . «Знания C или C ++ в колледже необходимы, чтобы перейти к современному C ++ и выбрать область, в которой вы хотите работать. Эти знания также могут быть применены при создании современных приложений.

  1. Используйте многоплатформенные компиляторы или выберите основную платформу ОС, для которой вы хотите разрабатывать

C ++ имеет стандарты, поэтому, как правило, большинство компиляторов могут запускать большую часть кода C ++, но некоторые компиляторы имеют некоторые специфические особенности. В разных операционных системах используются разные популярные компиляторы C ++ и IDE. Например, в ОС Windows есть Visual C ++, C ++ Builder и многие другие компиляторы и IDE; В Linux есть GNU C / C ++ и clang; Mac-OS, iOS — лязг; а в Android есть Android Studio с C ++. Также существует кроссплатформенная и многоплатформенная поддержка в некоторых из этих компиляторов и IDE, таких как C ++ Builder и Visual C ++.

Если вы хотите сосредоточиться только на одной операционной системе, вы можете выбрать одну из них. Если ваше приложение успешно работает в этой ОС, и вы хотите перенести его на другие операционные системы, это может быть сложно сделать. В современном C ++ использование мультиплатформенного компилятора или IDE (также называемого кроссплатформенной разработкой или разработкой для нескольких устройств) лучше, чем использование конкретного компилятора, поскольку это позволяет легко компилировать код для всех платформ. Это один из ключей к обновлению вашего кода: ваш код может быть ориентирован на одну ОС, но его должно быть легко компилировать для других .

Совет 2 : используйте мультиплатформенные компиляторы. Если вы сосредоточитесь на одной платформе ОС, также учтите, что это будет платформа с несколькими ОС.

  1. Выберите свой профессиональный компилятор с помощью IDE 

 Сегодня существует множество компиляторов C ++ и IDE с множеством функций для разработки профессиональных приложений, включая Visual C ++, C ++ Builder, GNU C / C ++, Objective-C, Dev-C ++ (с TDM-GCC), Code-Blocks (с GNU C / C ++), CLion (с GNU C / C ++), редактор Eclipse. Некоторые компиляторы поставляются с IDE (или IDE поставляется с собственным компилятором), некоторые IDE поставляются с популярным компилятором (например, GNU C / C ++), а некоторые IDE поддерживают только кодирование C ++ с подсветкой синтаксиса (например, Notepad ++). 

Чтобы перейти на современный C ++ с последними стандартами, возможностью подключения к базам данных, кроссплатформенной поддержкой, а также поддержкой 2D и 3D, мы предлагаем C ++ Builder . Он работает в Windows, а также может компилировать код для 32-разрядной версии iOS и Android. 

C ++ Builder является частью RAD Studio, но работает автономно, если вы не хотите использовать другой язык, предлагаемый RAD Studio (Delphi). C ++ Builder включает компилятор с расширением Clang для Win32, Win64 и iOS. Он также включает современную высокопроизводительную среду разработки RAD Studio, инструменты отладки и возможности корпоративного подключения для ускорения разработки межплатформенного пользовательского интерфейса. Вы можете легко разрабатывать приложения на основе графического интерфейса пользователя, поскольку он поставляется с отмеченной наградами инфраструктурой VCL для высокопроизводительных нативных приложений Windows и мощной инфраструктурой FireMonkey (FMX) для кроссплатформенных интерфейсов пользователя.

Бесплатную версию C ++ Builder Community Edition могут использовать студенты, новички и стартапы. Вы можете скачать бесплатную версию C ++ Builder Community Edition здесь . Профессиональные разработчики могут использовать профессиональные, архитектурные или корпоративные версии C ++ Builder. Вы можете загрузить и использовать пробную версию в течение одного месяца с теми же возможностями, что и полная версия. Пожалуйста, посетите здесь для получения более подробной информации. 

Если вы хотите кодировать только серверные приложения (или консольные приложения), вы можете использовать компилятор GNU C / C ++ (GCC, g ++) с совместимой IDE. GNU g ++ — еще один мощный компилятор C ++, изначально написанный как компилятор для операционных систем Unix, Linux и GNU. Система GNU была разработана как 100% бесплатное программное обеспечение, и она эффективна как для 32-битных, так и для 64-битных операций. Этот компилятор можно использовать в Windows, используя уровни совместимости MinGW или Cygwin Linux. Скомпилированным исполняемым файлам требуется небольшая библиотека DLL для независимой работы в Windows. Он в основном совместим со стандартами Clang. 

Компилятор GNU C / C ++ (GCC, g ++) также может использоваться Visual Studio Code, Dev C ++, Code Blocks и CLion IDE, а также напрямую с командной строкой или PowerShell. 


Совет 3. Используйте профессиональный компилятор с IDE, например C ++ Builder. 

  1. При кодировании учитывайте современный стандарт C ++

Следует ли при кодировании учитывать стандарт C ++? Ответ положительный! Мы настоятельно рекомендуем вам кодировать с помощью компилятора C ++ с расширением CLANG или, насколько это возможно, в соответствии со стандартами CLANG. 

CLANG — это стандарт для компиляторов C ++ (для кодирования, компиляции, отладки C ++ и т. Д.), Которые считаются производственными компиляторами C, Objective-C, C ++ и Objective-C ++ при ориентации на X86-32, X86-64 и ARM. . Это новый стандарт компилятора C / C ++ (C ++ 98, C ++ 11, C ++ 17, C ++ 20, C ++ 23…), поддерживаемый проектом инфраструктуры компилятора LLVM и являющийся компилятором по умолчанию в последние годы для большинства компиляторов C / C ++. Это означает, что если вы кодируете компилятор CLANG, большинство других IDE и компиляторов платформ будут поддерживать ваш код без каких-либо изменений. Последний стандарт C ++ 17 поддерживается большинством компиляторов C ++. Более подробную информацию о функциях основного языка можно найти здесь . C ++ 20 является новым и требует времени на адаптацию.

C ++ Builder и Visual C ++ поставляются с компиляторами, улучшенными IDE и CLANG. GNU C / C ++ и Objective-C также перечислены как компиляторы CLANG. 

Что CLANG означает для разработчика? Если вы разрабатываете свой код в стандарте CLANG, независимо от того, ориентирован ли он на одну платформу или на несколько платформ, ваш код совместим с другими компиляторами, расширенными CLANG. Вы можете легко переносить свои коды из одного компилятора в другой.

Совет 4. Кодируйте с помощью компилятора C ++ с расширением CLANG или кодируйте как можно больше в соответствии со стандартами CLANG.

  1. Используйте строки Unicode или широкие строки

В College C ++ массивы символов в основном представлены в виде буквенно-цифрового текста, как показано ниже. 

[crayon-676b6b9ccee51394794351/]

Несмотря на то, что они используются в очень низкоуровневом коде, строки, содержащиеся в этом формате (или символах *), сложно безопасно писать и являются частой причиной ошибок, включая проблемы с безопасностью.

Как правило, используйте строковые массивы вместо массивов символов, как в примере ниже.

[crayon-676b6b9ccee97836247538/]

К сожалению, в большинстве кодов и баз данных имена, отчества, фамилии, тексты адресов и т. Д. Определены как фиксированные массивы символов. Ниже приведен пример из C ++ в стиле колледжа.

[crayon-676b6b9ccee99230190962/]

Обратите внимание, что большинство имен состоит из трех-восьми символов (Джим, Али, Чен, Мехмет); фамилии и отчества примерно одинаковы. И многие адреса состоят из 50-80 символов. У некоторых приложений есть пустые поля адреса, пока он определен для добавления. Однако они имеют фиксированную длину и негибкость, и методы работы со строками в этом формате часто небезопасны.

Имея это в виду, приведенное ниже использование строк намного более современно.

[crayon-676b6b9ccee9a466285383/]

std :: string работает с char, что означает, что это не строка Unicode, которая может поддерживать все языки мира, но вы можете хранить данные UTF8 в строке, хотя это не идеально (данные не помечены как UTF8 и последовательности символов представляют собой один символ человеческого языка. Мы можем легко изменить определение std :: string на определение std :: wstring .

Использование строки очень хорошо, если вы разрабатываете приложение, работающее с английскими текстами или с текстовыми стандартами ASCII (на немецком, французском, испанском и т. Д.), Потому что строка состоит из массивов символов ASCII.

В нашем примере ниже можно использовать широкую строку.

[crayon-676b6b9ccee9b563060127/]

Используйте L перед текстовыми кавычками, как показано ниже, для поддержки форматирования Unicode.

[crayon-676b6b9ccee9e178206398/]

WideString представляет собой динамически выделяемую последовательность строки wchar_t из 16-битных символов Unicode и подходит для использования в приложениях COM. Однако WideString не учитывается. UnicodeString — это динамически выделяемая строка в Unicode, максимальная длина которой ограничена только доступной памятью, она более гибкая и эффективная в других типах приложений.  Если вы разрабатываете глобальное приложение, используйте строки Unicode. 

Стандарт Unicode для UnicodeString предоставляет уникальный номер для каждого символа (8, 16 или 32 бита), превышающего символы ASCII (8 бит). Строки Unicode широко используются из-за их поддержки языков во всем мире и их смайликов. В современном C ++ в настоящее время используются два типа строк: массив символов (строки символов) и UnicodeStrings (WideStrings и AnsiStrings более старые, теперь не совместимы со всеми функциями). CLANG | C ++ Builder | GNUC / C ++ | компиляторы и IDE используют этот стандарт для форм графического интерфейса пользователя для поддержки всех языков для предоставления приложений по всему миру. Более подробную информацию о структуре UnicodeStrings можно найти здесь . RAD Studio, Delphi и C ++ Builder используют строки на основе Unicode, то есть тип строки является строкой Unicode ( System.UnicodeString) вместо строки ANSI. Используйте строку или UnicodeString в C ++ Builder, как показано ниже,

[crayon-676b6b9cceea0436143490/]

Совет 5:  используйте широкие строки или UnicodeStrings в строковых форматах для поддержки всемирного языка; по возможности избегайте использования массивов фиксированных символов.

Прочтите вторую часть этого сообщения в блоге здесь

Прочтите часть 3 этого сообщения в блоге здесь

Exit mobile version