C++ using in C/extern "C" ifadesi

Başlatan yldzelektronik, 29 Haziran 2015, 17:28:25

yldzelektronik

Keil için arduino vs gibi c++ kodlarını kullanabilir miyiz?

Ayrıca bir dosyada şöyle birşey gördüm
Header
#ifdef __cplusplus
#include "RF22.h"
#include "RF22Mesh.h"
#include "RF22Datagram.h"
#include "RF22ReliableDatagram.h"
extern RF22Mesh rf22;
 extern "C" {
#endif
  #define RF22_MESH_MAX_MESSAGE_LEN_ 58/*64-5-1 = RF22_MESH_MAX_MESSAGE_LEN*/
  bool RF22_Init(void); 
  uint8_t RF22_Sendtowait(uint8_t* buf, uint8_t len, uint8_t address);
  bool RF22_recvfromAckTimeout(uint8_t* buf, uint8_t* len, uint16_t timeout, uint8_t* from);
  void RF22_Reassign(uint8_t New_address);
  void RF22_Service_ISR(void);
  bool RF22_Sendto(uint8_t* buf, uint8_t len, uint8_t address);
  void RF22_Set_New_Sequence(uint8_t newSequence);
//  bool RF22_SendtoWait(uint8_t* buf, uint8_t len, uint8_t address);
#ifdef __cplusplus
 }
#endif


C
RF22Mesh rf22(ATTACH_POINT);

extern "C" bool RF22_Init(void){
 return rf22.init();
}

extern "C" uint8_t RF22_Sendtowait(uint8_t* buf, uint8_t len, uint8_t address){
 return rf22.sendtoWait(buf, len, address);
}

extern "C" bool RF22_recvfromAckTimeout(uint8_t* buf, uint8_t* len, uint16_t timeout, uint8_t* from) {
 return rf22.recvfromAckTimeout(buf, len, timeout, from);
}

extern "C" void RF22_Reassign(uint8_t New_address){
  rf22.setThisAddress(New_address);
}

extern "C" void RF22_Service_ISR(void){
  rf22.handleInterrupt();
}

extern "C" bool RF22_Sendto(uint8_t* buf, uint8_t len, uint8_t address){
  return rf22.sendto(buf,len,address);
}

extern "C" void RF22_Set_New_Sequence(uint8_t newSequence){
  rf22.pokeAtSequence(newSequence);
}
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.