Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >从C99提供C++复参数

从C99提供C++复参数
EN

Stack Overflow用户
提问于 2013-01-28 11:31:37
回答 1查看 237关注 0票数 3

可能重复: Passing a C++ complex array to C

如果第三方C库需要一个C99复数数组作为参数,那么从C++调用它最简单的方法是什么,在C++中,我的复数使用STL复数类型?我可以将它封装在一个新的c函数中,它接受浮点数并将它们转换为复杂函数,但是有更直接的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 11:48:21

根据C99的说法:

6.2.5/13每种复形类型具有与数组类型相同的表示和对齐要求,数组类型恰好包含对应实类型的两个元素;第一个元素等于复数的实部,第二个元素对应于虚部。

根据C++11的说法:

26.4如果acv* std::complex<T>*类型的表达式,而a[i]表达式是整数表达式ia[i],那么:

  • reinterpret_cast<cv T*>(a)[2*i]应指定a[i]的真实部分,以及
  • reinterpret_cast<cv T*>(a)[2*i + 1]应指定a[i]的虚部

这意味着这两种类型具有相同的布局,因此您可以简单地将C函数传递为指向std::complex数组的指针。

请注意,较早版本的C++不能保证这种布局。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14569690

复制
相关文章
从Python传递参数到C++
有些场景下,需要将Python里面计算得到的参数或者结果传入到C++来进行工程部署。一个常见问题是,Python该以什么格式 (二进制还是文本) 保存这些参数,然后从C++代码里面来读取呢,各有什么优劣?这里我们简单实验一下,并写一些趁手的代码,供查阅。
王云峰
2023/10/21
3390
C++参数传递
C++和Java、C#语言在参数传递的时候,最大的不同就是在 C++ 中,除非显式通过指针或引用传递,否则所有变量都通过值传递。在 C# 中,除非显式通过具有 ref 或 out 参数修饰符的引用传递,否则类通过引用传递,而结构通过值传递。Java中类通过引用传递,基本数据类型通过值传递。
卡尔曼和玻尔兹曼谁曼
2019/01/25
8380
C++参数传递
(C99)复合字面量
#include <stdio.h> struct argvs { char a[64]; int b; }; int pfunc(struct argvs *a) { printf("argvs.a=%s argvs.b=%d\n", a->a, a->b); } int func(struct argvs a) { printf("argvs.a=%s argvs.b=%d\n", a.a, a.b); } int main(int argc, char *arg
用户4645519
2020/09/08
5500
(C99)复合字面量
C++可变参数
Java中的可变参数其实就是数组,对C++的可变参数比较好奇,所以上网查了资料,了解下!
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.8K0
c99的新功能
在ANSI的标准确立后,C语言的规范在一段时间内没有大的变动,然而C++在自己的标准化创建过程中继续发展壮大。《标准修正案一》在1994年为C语言创建了一个新标准,但是只修正了一些C89标准中的细节和增加更多更广的国际字符集支持。不过,这个标准引出了1999年ISO 9899:1999的发表。它通常被称为C99。C99被ANSI于2000年3月采用。
用户4645519
2020/09/08
4200
C++内联函数,默认参数,占位参数
之前讲过宏定义会经过预处理器进行文本替换,缺点就在于没有类型检查,没有任何编译过程,编译器根本不知道类型是什么.
诺谦
2019/05/24
1.3K0
C++函数参数传递
当形参是非引用类型时,实参的值会被拷贝给形参,实参和形参是两个完全不同的对象,函数对形参做的所有操作都不会影响实参。
TOMOCAT
2021/05/11
1.7K0
【复】从0到1的 selenium 爬虫经历
备战春招难免会无趣和煎熬,因此,突然发现了爬虫这么乐趣的事情,一番探究之后,发现这是多么美妙的事情啊~
sidiot
2023/08/31
3090
【复】从0到1的 selenium 爬虫经历
C++使用可变参数
    今天要说的是C++使用可变参数的方式,包括std::initializer_list<T>模板类、可变参数模板。
学徒漠筱歌
2022/07/17
7570
C++ 实现可变参数
一般形式都是 type func(char * formatstr,...); 然后通过已有的参数 formatsrr 来推出,后面的参数。 这样写起来的话,就要匹配所有的基本类型,C++提供了3个宏和算法可以简单处理。 这样,通过vsprintf_s就格式化到buf中。 #include <iostream> #include <stdarg.h> void print(char * formatstr,...) { char buf[1024] = {0}; va_lis
forxtz
2020/10/10
5290
C++与C的区别终于说清楚了!
在很大程度上,C++是C的超集,这意味着一个有效的C程序也是一个有效的C++程序。
C语言与CPP编程
2022/10/31
9010
C++与C的区别终于说清楚了!
秒针提供了一个京东天猫站内广告的复盘工具
对电商广告主来说,如何实现对站内广告投放的监测一直是个难题。一般广告主都是采取人工监测的方式,但面对大批量上线的广告时:由于广告资源、展现方式和上线时间的不同,会加大人工监测的难度,遗漏始终无法避免。仅2018年,就有近10%的电商站内广告未按预订计划上线,给品牌广告主造成了巨大的损失。
iCDO互联网数据官
2019/07/05
6470
秒针提供了一个京东天猫站内广告的复盘工具
C++类自动提供的特殊成员函数
ANSI C允许结构赋值,⽽C++允许类对象赋值,这是通过⾃动为类重载赋值运算符实现的。
Alan_1
2023/04/30
7240
从促活到复购,你的品牌需要粉丝社区!
乐乐经常和客户聊到这个问题:我们的乐享能不能加外部联系人?能不能把自己的用户也加进来呀?…… 今天乐乐给大家统一回复:能!非常能!欢迎大家用起来~ 打开乐享的隐藏副本:粉丝社区 用腾讯乐享可以打造粉丝社区?没错!已经有美妆、母婴、医美等各个行业的客户率先用起来了! 什么是粉丝社区?简单来说,就是一个让品牌吸引和汇聚自己粉丝的平台,在这里,可以做用户运营、营销增值、提升品牌形象。 用好粉丝社区,就是运营好“私域流量”。 说起私域流量,似乎就能联想到拉群加客户、在群里狂发广告、朋友圈刷广告……    
腾讯乐享
2020/08/28
8680
c++ 可变参数 默认类型升提升 可变参数陷阱
printf("%p,%p,%p,%p,%p,%p,%p\n", &t.a, &t.b, &t.c, &t.d,&t.e,&t.f,&t.z);
用户7886150
2021/02/14
7700
【C++】函数参数扩展 ( 默认参数 | 默认参数定义规则 | 默认参数定义在参数列表末尾 )
" 默认参数 " 概念 : C++ 语言 中的 函数 , 可以在 声明 函数时 , 为 函数参数 定义一个默认值 ;
韩曙亮
2023/10/15
7700
【C++】函数参数扩展 ( 默认参数 | 默认参数定义规则 | 默认参数定义在参数列表末尾 )
【细品C++】缺省参数详解
本篇文章将向你介绍缺省参数,希望对你的C++学习有帮助。使用这种短文章的形式是希望读者朋友们尽可能读完。当然之后也会出一个类似总集篇的长文。
Crrrush
2023/06/23
2900
【细品C++】缺省参数详解
c++获取命令行参数
第一个形参必须是int(c语言规定),第二个形参必须是指向字符串的指针数组,而且main函数自身的参数值是从操作系统命令行获取的。
高久峰
2023/06/23
5250
从 C++ 到 Go
模块管理 可执行程序都声明为 "package main",而不是像 C++ 那样找 main() 函数所在源码 声明为其他 "package xxx" 的代码,会自动编译成  xxx.a,自动打包成静态库比较方便 这是针对 C++ 复杂的 3L(Load, Link, Library) 机制的一个重大修正。在实际开发中,我也比较喜欢把所有的依赖模块都先打包成静态库,然后最终静态链接成一个“几乎没有任何依赖的”可执行文件。而不喜欢通过动态链接依赖操作系统中安装的各种库,因为环境变化太多很容易出问题。 语法差
韩伟
2022/08/26
9370
pybind11: C++ 工程如何提供 Python 接口
C/C++ 工程提供 Python 接口,有利于融合进 Python 的生态。现在 Python 在应用层,有其得天独厚的优势。尤其因为人工智能和大数据的推波助澜, Python 现在以及未来,将长期是最流行的语言之一。
GoCoding
2021/05/06
2.2K0

相似问题

WebGet JSON复参数

14

Swift复参数型

22

复RSpec参数测试

10

C++函数中的复参数-指针、再转换还是.?

43

Resharper C++执行C99

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档