{"id":"https://openalex.org/W2991925561","doi":"https://doi.org/10.1145/3361149.3361151","title":"Patterns to escape the #ifdef hell","display_name":"Patterns to escape the #ifdef hell","publication_year":2019,"publication_date":"2019-07-03","ids":{"openalex":"https://openalex.org/W2991925561","doi":"https://doi.org/10.1145/3361149.3361151","mag":"2991925561"},"language":"en","primary_location":{"id":"doi:10.1145/3361149.3361151","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3361149.3361151","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th European Conference on Pattern Languages of Programs","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5059314501","display_name":"Christopher Preschern","orcid":null},"institutions":[{"id":"https://openalex.org/I4210157642","display_name":"Institute of Automation","ror":"https://ror.org/056qj1t15","country_code":"DE","type":"facility","lineage":["https://openalex.org/I4210157642","https://openalex.org/I78650965"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Christopher Preschern","raw_affiliation_strings":["B&amp;R Industrial Automation GmbH"],"affiliations":[{"raw_affiliation_string":"B&amp;R Industrial Automation GmbH","institution_ids":["https://openalex.org/I4210157642"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5059314501"],"corresponding_institution_ids":["https://openalex.org/I4210157642"],"apc_list":null,"apc_paid":null,"fwci":0.2889,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.67976776,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"12"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.3497999906539917,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.3497999906539917,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.09870000183582306,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.08510000258684158,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.539496898651123}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.539496898651123}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3361149.3361151","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3361149.3361151","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 24th European Conference on Pattern Languages of Programs","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.6399999856948853,"display_name":"Peace, Justice and strong institutions","id":"https://metadata.un.org/sdg/16"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":11,"referenced_works":["https://openalex.org/W596649366","https://openalex.org/W1517055698","https://openalex.org/W2120789318","https://openalex.org/W2295618810","https://openalex.org/W2589128721","https://openalex.org/W2770261768","https://openalex.org/W2907766481","https://openalex.org/W2991870658","https://openalex.org/W2993701918","https://openalex.org/W2994103489","https://openalex.org/W3145100113"],"related_works":["https://openalex.org/W2748952813","https://openalex.org/W2390279801","https://openalex.org/W2358668433","https://openalex.org/W2376932109","https://openalex.org/W2001405890","https://openalex.org/W2382290278","https://openalex.org/W2478288626","https://openalex.org/W2350741829","https://openalex.org/W2530322880","https://openalex.org/W1596801655"],"abstract_inverted_index":{"There":[0],"are":[1,17],"many":[2],"things":[3],"one":[4],"can":[5],"do":[6],"wrong":[7],"when":[8,34],"using":[9],"the":[10,30,38],"C":[11,31,39,67],"pre-processor's":[12],"#ifdef":[13,46,76],"statements.":[14,77],"Such":[15],"statements":[16],"often":[18],"used":[19,36],"to":[20,63,72],"distinguish":[21],"between":[22],"hardware":[23],"variants":[24,28,65],"or":[25],"operating":[26],"system":[27],"in":[29,57,66],"code":[32,40,68],"and":[33,53,69],"not":[35],"carefully,":[37],"easily":[41],"becomes":[42],"a":[43],"mess":[44],"of":[45,59,75],"cascades.":[47],"This":[48],"paper":[49],"addresses":[50],"this":[51],"issue":[52],"provides":[54],"best":[55],"practices":[56],"form":[58],"patterns":[60],"on":[61,70],"how":[62,71],"organize":[64],"get":[73],"rid":[74]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2026-03-03T08:47:05.690250","created_date":"2025-10-10T00:00:00"}
