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++ — начало работы, руководства, справочные материалы.

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

Изучайте 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 добавляется статическая и динамическая проверка.