C microsoft: Документация по Microsoft C/C++ | Microsoft Learn
Содержание
Документация по C. Начало работы, руководства, справочные материалы.
Изменить
Twitter
LinkedIn
Facebook
Адрес электронной почты
Начало работы с C в Visual Studio
Скачать
- Скачать Visual Studio для Windows
- Установка поддержки C/C++ в Visual Studio
- Скачать только средств сборки для командной строки
Учебник
- Компиляция программы на языке C из командной строки
Использование компилятора и средств
Ссылка
- Справочные сведения о сборке кода на C/C++
- Проекты и системы сборки
- Справочник по компилятору
- Справочник по компоновщику
- Дополнительные средства сборки
- Ошибки и предупреждения
Язык C
Ссылка
- Справочник по языку C
- Элементы языка C
- Структура программы
- Объявления и типы
- Выражения и присваивания
- Операторы
- Функции
- Краткие сведения о синтаксисе языка C
- Поведение, определяемое реализацией
- Справочник по препроцессору в C/C++
Библиотека времени выполнения (CRT)
Ссылка
- Особенности библиотеки CRT
- Алфавитный указатель функций
- Подпрограммы среды выполнения C по категориям
- Глобальные переменные и стандартные типы
- Глобальные константы
- Глобальное состояние
- Универсальные текстовые сопоставления
Документация по C++.
Начало работы, руководства, справочные материалы.
Изменить
Twitter
LinkedIn
Facebook
Адрес электронной почты
Основы использования C++ в Visual Studio
Скачать
- Скачать Visual Studio для Windows
- Установка поддержки C/C++ в Visual Studio
- Загрузка только средств сборки из командной строки
Начало работы
- Hello World в Visual Studio на C++
- Создание консольного приложения «Калькулятор» на C++
video
- Знакомство с C++ — языком и библиотекой общего назначения
Обучение
- Возвращение к C++ — современный C++
- Примеры и архив примеров
Новые возможности C++ в Visual Studio
Новое
- Новые возможности C++ в Visual Studio
- Улучшение соответствия C++
Общие сведения
- Общие сведения о разработке на C++ в Visual Studio
- Поддерживаемые целевые платформы
- Справка и ресурсы сообщества
- Сообщение о проблеме или внесение предложения
Использование компилятора и средств
Ссылка
- Справочные сведения о сборке кода на C/C++
- Проекты и системы сборки
- Справочник по компилятору
- Справочник по компоновщику
- Дополнительные средства сборки
- Ошибки и предупреждения
Язык C++
Ссылка
- Справочник по языку C++
- Ключевые слова C++
- Операторы C++
- Справочник по препроцессору в C/C++
Стандартная библиотека C++ (STL)
Ссылка
- Общие сведения о стандартной библиотеке C++
- Справочник по стандартной библиотеке C++ по заголовкам
- Контейнеры стандартной библиотеки C++
- Iterators
- Алгоритмы
- Распределители
- Объекты функций
- iostream — программирование
- Регулярные выражения
- Навигация по файловой системе
документов по C++ — начало работы, руководства, справочные материалы.
Редактировать
Твиттер
Фейсбук
Электронная почта
Изучайте C++ в Visual Studio
Скачать
- Скачать Visual Studio для Windows
- Установите поддержку C/C++ в Visual Studio.
- Загрузите только инструменты сборки из командной строки
Начать
- Привет, мир в Visual Studio с C++
- Создать консольный калькулятор на C++
видео
- Изучайте C++ — язык общего назначения и библиотеку
Обучение
- Добро пожаловать обратно в C++ — Современный C++
- Образцы и архив образцов
Новые возможности C++ в Visual Studio
Что нового
- Что нового для C++ в Visual Studio
- Улучшения соответствия C++
Обзор
- Обзор разработки C++ в Visual Studio
- Поддерживаемые целевые платформы
- Помощь и ресурсы сообщества
- Сообщить о проблеме или внести предложение
Использовать компилятор и инструменты
Ссылка
- Справочник по сборке C/C++
- Проекты и системы сборки
- Справочник по компилятору
- Справочник по компоновщику
- Дополнительные инструменты сборки
- Ошибки и предупреждения
Язык С++
Ссылка
- Справочник по языку С++
- Ключевые слова С++
- Операторы С++
- Справочник по препроцессору C/C++
Стандартная библиотека C++ (STL)
Ссылка
- Обзор стандартной библиотеки C++
- Ссылка на стандартную библиотеку С++ по заголовку
- Контейнеры стандартной библиотеки C++
- Итераторы
- Алгоритмы
- Распределители
- Функциональные объекты
- iostream программирование
- Обычные выражения
- Навигация по файловой системе
Checked C — Microsoft Research
Проект Checked C расширяет язык программирования C, чтобы программисты могли писать более безопасные и надежные программы на C. В рамках проекта разрабатывается расширение для C под названием Checked C, которое добавляет в C проверку для обнаружения или предотвращения распространенных ошибок программирования, таких как переполнение буфера, доступ к памяти за пределами памяти и неправильное приведение типов. Расширение предназначено для использования с существующим системным программным обеспечением, написанным на C.
Дополнительная информация
Вот краткий список ресурсов:
- Посетите Checked C Wiki на GitHub, чтобы узнать больше о расширении Checked C.
- Загрузите форк компилятора clang, чтобы попробовать Checked C в Windows, здесь.
- Последняя версия дизайна расширения Checked C для языка доступна на GitHub здесь.
- Всю нашу текущую работу мы делаем на Github с репозиториями для дизайна языка и реализации компилятора.
Checked C — это открытый совместный проект. Разработчики и исследователи могут попробовать его, оставить отзыв или внести свой вклад.
Над проектом работают такие исследователи, как Майкл Хикс, Рэй Чен и Хасан Тома из Университета Мэриленда, Аравинд Мачири из Калифорнийского университета в Санта-Барбаре, Хорхе Навас из SRI и Арье Гурфинкель из Университета Ватерлоо, а также Эндрю Рюф. Они работали над инструментом преобразования программ на C в Checked C, а также преобразовывали существующий код и предоставляли отзывы о дизайне языка. В прошлом мы также работали с исследователями из Samsung. Мы благодарим всех наших сотрудников и стажеров за их вклад в проект.
Дэвид Тардити выступил с докладом об исследовании Checked C в Вашингтонском университете в октябре 2016 г. Доклад доступен на YouTube.
Текущие стажеры (2020 г.)
- Yahui Sun (Texas A\&M): Yahui Sun работал над преобразованием сети в MUSL, широко используемой среде выполнения C, для использования Checked C. Он также работал над улучшением сообщений об ошибках, объясняющих, почему границы не может быть доказана действительность деклараций.
- Esmaeil Mohammadian Koruyeh (Калифорнийский университет в Риверсайде): Esmaeil работал над преобразованием кода строкового процесса в MUSL, используемой Widley среде выполнения C, для использования Checked C. Он также работал над расширением типов условных тестов, которые приводят к расширению указателей. к массивам с завершающим нулем.
Бывшие стажеры
2019
- Цзе Чжоу (Университет Рочестера): Джи работает над тем, как динамически обнаруживать ошибки управления памятью, такие как использование после освобождения.
- Пардис Пашаханлоо (Университет Пенсильвании): Пардис улучшает статическую проверку объявлений границ в компиляторе Checked C.
- Абель Нието (Университет Ватерлоо): Абель реализует поддержку универсальных структур данных в компиляторе Checked C.
2018
- Шэнь Лю (штат Пенсильвания): Шен работал над статической проверкой для Checked C, в том числе выводом расширенных границ для массивов с завершающим нулем.
- Прабху Картикеян Раджасекаран (Калифорнийский университет в Ирвине): Прабху добавил безопасные по границам интерфейсы для универсальных функций в Checked C и исследовал использование Checked C в Linux.
- Анна Корнфельд Симпсон (Вашингтонский университет): Анна оценила Checked C на реальном коде, модифицировав несколько открытых исходных кодов для использования Checked C.
2017
- Сэм Эллиотт (Вашингтонский университет): Сэм работал над реализацией динамической проверки для Checked C. Он написал технический отчет, подробно описывающий свою работу.
- Джей Лим (Университет Рутгерса): Джей расширил проверенную реализацию Clang для поддержки полиморфно типизированных функций. Это обеспечивает типобезопасную замену для многих случаев использования указателей void в C
.
2016
- Эндрю Рюф (Университет Мэриленда): Эндрю написал инструмент для переписывания программ на C для использования расширений Checked C, в частности, птр тип .
Подробное описание
Большая часть системного программного обеспечения написана на C или C++, который основан на C. Системное программное обеспечение включает операционные системы, браузеры, базы данных и интерпретаторы языков программирования. Системное программное обеспечение — это «инфраструктурное» программное обеспечение, на котором работает мир.
Существуют определенные типы ошибок программирования, такие как переполнение буфера и неправильное приведение типов, которые программисты могут совершать при написании программ на C или C++. Эти ошибки могут привести к уязвимостям в системе безопасности или проблемам с надежностью программного обеспечения. Расширение Checked C позволит программистам добавлять проверки в свои программы для обнаружения подобных ошибок во время выполнения программы или во время ее написания. Существующее системное программное обеспечение может быть изменено постепенно с обратной совместимостью, чтобы иметь эту проверку.
В C программисты используют указатели для доступа к данным. Указатель — это адрес ячейки памяти. Программистам легко допустить ошибку при работе с указателями, например, программа читает или записывает неправильные данные. Эти ошибки могут привести к сбою программ, неправильному поведению или позволить злоумышленнику захватить управление программой. Checked C позволяет программистам лучше описать, как они намерены использовать указатели и диапазон памяти, занимаемый данными, на которые указывает указатель. Затем эта информация используется для добавления проверки во время выполнения для обнаружения ошибок при доступе к неправильным данным вместо того, чтобы ошибка происходила незаметно и без обнаружения. Эта информация также может быть использована для обнаружения ошибок программирования во время написания программы. Эта проверка называется «проверкой границ», потому что она проверяет, осуществляется ли доступ к данным в пределах предполагаемых границ. Название Checked C отражает тот факт, что в C добавляется статическая и динамическая проверка.