#include < stdio.h >
void digitcountsum (int k, int *c, int *s){
*c=0;
*s=0;
while(k!=0){
*s+=k%10;
++*c;
k/=10;
}
}
int main(void)
{
int i;
for(i=1;i<=5;++i){
int k;
printf("Введите целое число K: ");
scanf("%i", &k);
int c,s;
digitcountsum(k, &c, &s);
printf("Количество цифр C: %i\nСумма цифр S: %i\n",c,s);
}
return 0;
}
C/C++
Как выделить подпрограмму в отдельный программный модуль (.h)? Как это сделать с этой программой?
В заголовочный файл, скажем file.h, помещается заголовок функции:
#ifndef FILE_H
#define FILE_H
void digitcountsum (int k, int *c, int *s);
#endif
Также создаётся файл с реализацией функции, например, file.c:
#include "file.h"
void digitcountsum (int k, int *c, int *s){
*c=0;
*s=0;
while(k!=0){
*s+=k%10;
++*c;
k/=10;
}
}
В главном файле программы (main.c) пишется путь к заголовочному файлу:
#include <stdio.h>
#include "file.h"
int main(void)
{
int i;
for(i=1;i<=5;++i){
int k;
printf("Введите целое число K: ");
scanf("%i", &k);
int c,s;
digitcountsum(k, &c, &s);
printf("Количество цифр C: %i\nСумма цифр S: %i\n",c,s);
}
return 0;
}
Компилируются главный файл и файл с функцией отдельно и потом собираются в программу.
Например, в Линукс в компиляторе gcc:
gcc -c file.c -o file.o
gcc -c main.c -o main.o
gcc -o pro main.o file.o
#ifndef FILE_H
#define FILE_H
void digitcountsum (int k, int *c, int *s);
#endif
Также создаётся файл с реализацией функции, например, file.c:
#include "file.h"
void digitcountsum (int k, int *c, int *s){
*c=0;
*s=0;
while(k!=0){
*s+=k%10;
++*c;
k/=10;
}
}
В главном файле программы (main.c) пишется путь к заголовочному файлу:
#include <stdio.h>
#include "file.h"
int main(void)
{
int i;
for(i=1;i<=5;++i){
int k;
printf("Введите целое число K: ");
scanf("%i", &k);
int c,s;
digitcountsum(k, &c, &s);
printf("Количество цифр C: %i\nСумма цифр S: %i\n",c,s);
}
return 0;
}
Компилируются главный файл и файл с функцией отдельно и потом собираются в программу.
Например, в Линукс в компиляторе gcc:
gcc -c file.c -o file.o
gcc -c main.c -o main.o
gcc -o pro main.o file.o
если нужна функция в .h файле то просто добавь слева inline
inline void fuck_yuo(){
...
}
///
Ну то есть перенеси весь код в .h файл и добавь inline
inline void fuck_yuo(){
...
}
///
Ну то есть перенеси весь код в .h файл и добавь inline
Файл *.h - это не отдельный модуль программы а отдельный заголовочный файл
Если что-то нужно вынести в отдельный файл, то делается файл заголовка (*.h) и файл реализации (*.c или *.cpp). Эти файлы компилируются отдельно а потом объединяются на этапе линковки. Все это обычно прописано в Makefile
PS Мне очень не нравится ваша реализация функции void digitcountsum (int k, int *c, int *s) в плане условий цикла while
Если что-то нужно вынести в отдельный файл, то делается файл заголовка (*.h) и файл реализации (*.c или *.cpp). Эти файлы компилируются отдельно а потом объединяются на этапе линковки. Все это обычно прописано в Makefile
PS Мне очень не нравится ваша реализация функции void digitcountsum (int k, int *c, int *s) в плане условий цикла while
Похожие вопросы
- Почему нельзя освободить выделенную память для элемента массива или как это сделать правильно?
- Помогите пожалуйста построить таблицу значений функции y = f(x) для x ∈ [a, b] с шагом h (с помощью условного оператора)
- Требуется реализовать программное средство для решения функции
- Программный код для рисования круга на C++
- Подпрограмма задача по с и с++
- Подпрограммы в С++
- С++, Сделайте класс Triangle наследником класса Figure. Напишите программу, в которой будет считываться ..
- Программирование на С++. Напишите мой код с использованием подпрограммы
- Как в C++ продолжить классы разные сгруппировано в файлах .h и .cpp, при этом не переопределяя классы эти?
- C++, библиотека math.h