概念
a表示数据本身。
&a表示a对应的地址。
*a表示存a数据的地址。
#include<stdio.h>
int main()
{
int a = 10;
int *b = &a;
int* d = &a;
int c = *b;
printf("b = %p\n", b);
printf("d = %p\n", d);
printf("c = *b = %d\n",c);
printf("&a = %p\n",&a);
printf("*b = %d\n", *b);
}
#include <stdio.h>
#include <string.h>
void example(volatile int *a){
#pragma HLS INTERFACE m_axi port=a depth=50
int i;
int buff[50];
memcpy(buff,(const int*)a,50*sizeof(int));
for(i=0; i < 50; i++){
buff[i] = buff[i] + 100;}
}
#include <stdio.h>
#include <string.h>
void example(volatile int *a){ //volatile每次从源头赋值处读,非从内存中读取
#pragma HLS INTERFACE m_axi port=a depth=50
int i;
for(i=0; i < 10; i++){
*a = *a + 100;
// a = a + sizeof(int); //指针加1,不是加4,原因如下
printf("a = %p\n",a);
a++;} //指针加一等于加一个存储单元字节数,这里是4
}
数组传送
方法一memcpy
#include <stdio.h>
#include <string.h>
void example(volatile int a){
#pragma HLS INTERFACE m_axi port=a depth=50
int i;
int buff[50];
memcpy(buff,(const int)a,50*sizeof(int));
for(i=0; i < 50; i++){
buff[i] = buff[i] + 100;}
}
方法二指针加法
#include <stdio.h>
#include <string.h>
void example(volatile int *a){ //volatile每次从源头赋值处读,非从内存中读取
#pragma HLS INTERFACE m_axi port=a depth=50
int i;
for(i=0; i < 10; i++){
*a = *a + 100;
// a = a + sizeof(int); //指针加1,不是加4,原因如下
printf(“a = %p\n”,a);
a++;} //指针加一等于加一个存储单元字节数,这里是4
}
方法三指针变数组
#include <stdio.h>
#include <string.h>
void example(volatile int *a){
#pragma HLS INTERFACE m_axi port=a depth=50
int i;
for(i=0; i < 10; i++){
a[i] = a[i] + 100;
printf(“a = %p\n”,a);
}
}