Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32 & STM8 » Вопросы » Внешние глобальные extern


Внешние глобальные extern

Сообщений 1 страница 4 из 4

1

К сожалению не так так часто пользуюсь extern и маленько подзабыл,хочу прояснить эту ситуацию для себя.

Имеем 4 файла : main.c , main.h , test.h , test.c
Нужно работать с buff[] которая объявляется в main.c и чтоб ее видно было в test.c . Правильно ли я объявляю массив? А вот если в main.c вызывать функцию из файла test.c как ее стоит определять?

main.h

Код:
#ifndef MAIN_H
#define MAIN_H

#include "test.h"

#endif


main.c

Код:
#include "main.h"

// объявляем массив 
uint16_t buff[10];
uint16_t sum=0;

//работаем с buff 
sum=buff[0]+buff[1];

test.h

Код:
#ifndef _TEST
#define _TEST

extern uint16_t buff[10];

#endif


test.c

Код:
#include test.h

buff[0]=10;
buff[1]=12;

2

CERGEI написал(а):

Нужно работать с buff[] которая объявляется в main.c и чтоб ее видно было в test.c .

В test.c создай функцию принимающую в качестве параметра указатель...

3

А я думал преобразование из указателя нужно так делать : testt= *pbuff[0]+*pbuff[1];

test.c

Код:
uint16_t tests(uint16_t * pbuff)
{
	uint16_t testt;
	testt= pbuff[0]+pbuff[1];
	return testt;
}


main.c

Код:
sum=tests(buff);


Сразу спрошу,а где почитать про применение библиотек для работы со строками для stm32 или ковырять файлы stdint.h и stdio.h ?

Отредактировано CERGEI (2017-04-11 12:36:27)

4

CERGEI написал(а):

Сразу спрошу,а где почитать про применение библиотек для работы со строками

Что именно нужно?


Вы здесь » Микроконтроллеры » STM32 & STM8 » Вопросы » Внешние глобальные extern