Как я подошел к своему проекту «_Printf» в ALX
«Успех — это сумма небольших усилий, повторяемых изо дня в день». -Роберт С.

Прежде всего, если вы оказались здесь из-за проекта «_printf»в«0x11. C — printf»в учебной программе alx, приветствую вас, мои дорогие друзья-выпускники. И, тем не менее, другие друзья, которые пришли сюда также, чтобы либо собрать информацию, либо узнать больше о вариативных функциях. Я попытаюсь объяснить свой опыт работы с данным проектом и что _printf примерно так же, как и несколько примеров.
Проект парного программирования завершен в рамках учебного плана по низкоуровневому программированию и алгоритмам в ALX (организация по развитию лидерства, трудоустройства и предпринимательства). Нам было поручено чтобы закодировать функцию с именем "_printf", которая копирует функцию стандартной библиотеки C,printf().
_printf()
Для продвинутого новичка :) программа была немного запутанной, но затем я следовал надлежащему процессу, как нас учили. Благодаря большому мозговому штурму с моим партнером и встречам на белой доске и Google, мы смогли начать путешествие по программированию, сложное, я бы сказал ☺︎.
Обязательные задачи немного упростились, нам сказали обрабатывать определенные спецификаторы формата. Затем мы перешли к продвинутым задачам, где все усложнилось. К счастью, Техника Помидора окупилась. С результативными заслуженными перерывами мы вылетели из воды.
После выполнения каждой задачи мы скомпилировали наш код с заданными флагами gcc «gcc -Wall -Werror -Wextra -pedantic -std=gnu89 *.c» и убедились, что все крайние случаи соблюдены с правильным отображением вывода. Затем мы отправились на github, чтобы использовать средство проверки. Пытаясь так же меньше полагаться на шашки, он по-прежнему прокладывает себе дорогу своими красными светящимися глазами, но в конце концов мы победили, как сказал бы Фред Сваникер, «Делай трудные дела».
Благодаря этому проекту я узнал гораздо больше о функциях с переменным числом аргументов, системных вызовах, групповой обработке проектов на github и различных способах решения алгоритмических задач. Сложнее всего было определить объем возможностей «printf()», а затем попытаться сопоставить это с ограничениями, установленными ALX.
Дополнительное описание _printf()
Прототип:
int _printf(const char *format, …);
Прототип _printf() определен в заголовочном файле "main.h". Когда вы используете функцию _printf(), она печатает строку, указанную форматом, в стандартный вывод "stdout". Формат также может содержать некоторые спецификаторы, начинающиеся с "%", который указывает, как преобразуются последующие переменные аргументы (доступ к которым осуществляется через средства аргументов переменной длины в stdarg). для вывода.
Проще говоря, они работают как дополнительные аргументы функции _printf().
Функция возвращает:
- Количество символов, записанных в случае успеха (исключая завершающий нулевой байт, используемый для завершения вывода в строки)
- Отрицательное значение, если не удалось.
Пример:
#include "main.h"
int main(void)
{
char str[] = " Alx!";
printf("Hello,%s\n", str);
return (0);
}
Выход:
Hello Alx!
Узнайте больше об использовании спецификаторов здесь и дополнительную информацию о _printf() на моем README.mdздесь.
Поскольку _printf()является функцией с переменным числом аргументов, мы можем передать неопределенное количество аргументов, которые хотим распечатать.
Путь был трудным, но, к счастью, нашим наставникам в ALX Africa и их усилиям по обновлению нашего мышления, мы можем #DOHARDTHINGS.
Вот некоторые дополнительные ресурсы, которые я нашел полезными во время этого проекта, Наслаждайтесь.
